Repository: sosy-lab/benchexec (language: python)

Issue:
Refactor setHashSearch in JS code
The method [`setHashSearch`](https://github.com/sosy-lab/benchexec/blob/2695205de2376efb3b519b7dc5d1770825c9f0d3/benchexec/tablegenerator/react-table/src/utils/utils.js#L229) is not well designed and should be refactored.

It implements both the creation of the new hash string as well as (optionally) two(!) different side effects of what to do with the string. So the method should be split into the side-effect-free string creation and (if necessary) other methods handling the side effects. In this regard #805 and the avoiding of manual history manipulation could be relevant.

Furthermore, the method is not used well, because for example the method offers the `keepOthers` feature, which only some callers use. The other calls manually merge old and new hash params into a dict before, which could be replaced with setting `keepOthers` to `false`. And if I did not overlook something, there actually does not exist a use case for `keepOthers = false`, so this could be removed.

But first we need more tests for this method.


Discussion / hints:
Hi! Can I work on this issue?
Sure! This is likely a good followup to #731.

Fix patch:
diff --git a/benchexec/tablegenerator/react-table/build/main.min.js b/benchexec/tablegenerator/react-table/build/main.min.js
index 8fd801541..55d42129a 100644
--- a/benchexec/tablegenerator/react-table/build/main.min.js
+++ b/benchexec/tablegenerator/react-table/build/main.min.js
@@ -1,1 +1,1 @@
-!function(){var e={7415:function(e,t,n){"use strict";var i=n(7313),r=n(1168),s=n(5671),l=n(3144),a=n(136),o=n(1129),c=n(1413),u=n(3433),d=n(9439),h=n(8303),g=n(3830),f=n(7762),p=n(4942),m=n(5110),v=n(8567),I=n(5987),b=n(4506),C=n(2229),x=n.n(C),y=n(1969),Z=n(1875),j=n(6417),A=["ids"],F=function(e){(0,a.Z)(n,e);var t=(0,o.Z)(n);function n(e){var r;return(0,s.Z)(this,n),(r=t.call(this,e)).childRef=i.createRef(),r}return(0,l.Z)(n,[{key:"render",value:function(){var e=this;return(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)("span",{ref:this.childRef,children:this.props.children}),(0,j.jsx)("button",{title:"Copy to clipboard",style:{margin:"1ex"},onClick:function(){x()(e.childRef.current.innerText,{format:"text/plain"})},children:(0,j.jsx)(y.G,{icon:Z.kZ_})})]})}}]),n}(i.Component),W="##########",N=function(e){return"count"===e.type||"measure"===e.type},B=function(e){return void 0===e||null===e},G=function(e,t){return B(e)||B(e.raw)?t:e.raw},w=function(e,t){var n=G(e,"").toLowerCase(),i=G(t,"").toLowerCase();return""===n?1:""===i?-1:n>i?1:n<i?-1:0},Y=function(e){return 0===e||200===e},S=function(e,t){var n,i=[],r=(0,f.Z)(t);try{for(r.s();!(n=r.n()).done;){var s=n.value;s!==e&&i.push(s)}}catch(l){r.e(l)}finally{r.f()}return i},k=function(e,t,n){var i=e.max_width;return t&&(i=Math.max(i,t)),n&&(i=Math.min(i,n)),i||(i=10),8*i+20},V=function(e,t,n){var i=function(e,t){var n,i=t,r=(0,f.Z)(e);try{for(r.s();!(n=r.n()).done;)if(i=i[n.value],B(i))return}catch(s){r.e(s)}finally{r.f()}return i}(e,n);return void 0===i?t:i},R=function(e){return e.unit?(0,j.jsxs)(j.Fragment,{children:[e.display_title,(0,j.jsx)("br",{}),"(".concat(e.unit,")")]}):e.display_title},H=function(e){var t=e.tool,n=e.date,i=e.niceName;return"".concat(t," ").concat(n," ").concat(i)},T=["#19CDD7","#DDB27C","#88572C","#FF991F","#F15C17","#223F9A","#DA70BF","#125C77","#4DC19C","#776E57","#12939A","#17B8BE","#F6D18A","#B7885E","#FFCB99","#F89570","#829AE3","#E79FD5","#1E96BE","#89DAC1","#B3AD9E"],X=function(e){var t=(e||decodeURI(document.location.href)).split("?"),n=t.length>1?t.slice(1).join("?"):void 0;if(void 0===n||0===n.length)return{};var i,r=n.split("&").map((function(e){return e.split("=")})),s={},l=(0,f.Z)(r);try{for(l.s();!(i=l.n()).done;){var a=(0,b.Z)(i.value),o=a[0],c=a.slice(1);s[o]=c.join("=")}}catch(u){l.e(u)}finally{l.f()}return s},K=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{returnString:!1,baseUrl:null,keepOthers:!1,paramName:null,history:null},n={},i=e;if(t.keepOthers){n=X();var r=Object.entries(e).filter((function(e){var t=(0,d.Z)(e,2),n=(t[0],t[1]);return void 0===n||null===n}));r.forEach((function(e){var t=(0,d.Z)(e,1)[0];delete n[t],delete i[t]}))}var s=(0,c.Z)((0,c.Z)({},n),e),l={returnString:!1,baseUrl:null},a=(0,c.Z)((0,c.Z)({},l),t),o=a.returnString,u=a.baseUrl,h=a.history,g=(u||document.location.href).split("?")[0],f=Object.keys(s).map((function(e){return"".concat(e,"=").concat(s[e])})),p="?".concat(f.join("&")),m=encodeURI("".concat(g).concat(p));if(o)return m;h?h.push(p):document.location.href=m},L=function(e){for(var t=[],n=0,i=Object.entries(e);n<i.length;n++){var r=(0,d.Z)(i[n],2),s=r[0],l=r[1];t.push("".concat(s,"(").concat(l.map(escape).join(","),")"))}return t.join(",")},O=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],i={};if(e.length>Math.floor(t.length/2)){var r,s=[],l=(0,f.Z)(t);try{for(l.s();!(r=l.n()).done;){var a=r.value;e.includes(a)||s.push(n?a.trim():a)}}catch(o){l.e(o)}finally{l.f()}i.notIn=s}else i.in=e.map((function(e){return n?e.trim():e}));return L(i)};function U(e,t,n,i,r){var s=[],l=e.statusValues,a=e.categoryValues,o=t[n][i],c=r[n][i],u=!!l,d=u&&l.length!==o.length,h=!!a,g=h&&a.length!==c.length;if(u){if(d){var f=O(l,o);s.push("status(".concat(f,")"))}h||s.push("category(empty())")}if(h&&(u||s.push("status(empty())"),g)){var p=O(a,c,!0);s.push("category(".concat(p,")"))}return s.join(",")}var D,E=function(e){if("string"!==typeof e)throw new Error("Invalid value type for converting to RegExp");return new RegExp(e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),"ui")},P=function(e){if("string"!==typeof e)throw new Error("Invalid filter ID");var t=e.split("_");if(t.length>3)throw new Error("Invalid filter ID");return{tool:t[0],name:t[1],column:t[2]}},M=function(e){var t,n={},i=0,r="",s=(0,f.Z)(e);try{for(s.s();!(t=s.n()).done;){var l=t.value;if("("!==l){if(")"!==l)0!==i||","!==l?r+=l:r="";else if(r+=l,0===--i){var a=r.indexOf("("),o=r.substr(0,a),c=r.substr(a+1,r.length-1-(a+1));n[o]=c}}else r+=l,i++}}catch(u){s.e(u)}finally{s.f()}return n},J=function(e,t,n,i,r){return"values"===e?[{values:t.split(",").map(unescape)}]:"value"===e?[{value:unescape(t)}]:"status"===e||"category"===e?function(e,t,n,i,r){for(var s=M(t),l=[],a=0,o=Object.entries(s);a<o.length;a++){var c=(0,d.Z)(o[a],2),h=c[0],g=c[1];if("in"===h){var p=g.split(",").map(unescape);"category"===e&&(p=p.map((function(e){return"".concat(e," ")}))),l.push.apply(l,(0,u.Z)(p.map((function(e){return{value:e}}))))}if("notIn"===h){var m=g.split(",").map(unescape),v=[];if("category"===e){m=m.map((function(e){return"".concat(e," ")}));var I,b=(0,f.Z)(i[r]);try{for(b.s();!(I=b.n()).done;){var C=I.value;m.includes(C)||v.push({value:C})}}catch(j){b.e(j)}finally{b.f()}}else{var x,y=(0,f.Z)(n[r]);try{for(y.s();!(x=y.n()).done;){var Z=x.value;m.includes(Z)||v.push({value:Z})}}catch(j){y.e(j)}finally{y.f()}}l.push.apply(l,v)}}return l}(e,t,n,i,r):void 0},z=function(e){var t=e.categoryValues,n=e.statusValues;return function(e){for(var i=M(e),r=[],s=0,l=Object.entries(i);s<l.length;s++){var a=(0,d.Z)(l[s],2),o=a[0],h=a[1];if("id"!==o)if("id_any"!==o)for(var g=o,p=M(h),m={},v=0,I=Object.entries(p);v<I.length;v++){for(var b=(0,d.Z)(I[v],2),C=b[0],x=b[1],y=C.split("*"),Z=(0,d.Z)(y,2),j=Z[0],A=Z[1],F="".concat(g,"_").concat(unescape(A),"_").concat(j),W=m[F]||[],N=M(x),B=0,G=Object.entries(N);B<G.length;B++){var w=(0,d.Z)(G[B],2),Y=w[0],S=w[1];W.push.apply(W,(0,u.Z)(J(Y,S,n[g],t[g],j)))}for(var k=!1,V=!1,R=0,H=Object.keys(N);R<H.length;R++){var T=H[R];"status"===T?k=!0:"category"===T&&(V=!0)}(k&&!V||!k&&V)&&(k?W.push.apply(W,(0,u.Z)(t[g][j].map((function(e){return{value:e}})))):W.push.apply(W,(0,u.Z)(n[g][j].map((function(e){return{value:e}})))));var X,K=(0,f.Z)(W);try{for(K.s();!(X=K.n()).done;){var L=X.value;r.push((0,c.Z)({id:F},L))}}catch(U){K.e(U)}finally{K.f()}}else r.push((0,c.Z)({id:"id"},M(h)));else{var O=M(h);r.push((0,c.Z)({id:"id"},J("values",O.values)[0]))}}return r}},_=function(e,t){var n=function(e){var t=e.statusValues,n=e.categoryValues;return function(e){var i,r={},s=[],l=(0,f.Z)(e);try{for(l.s();!(i=l.n()).done;){var a=i.value,o=a.id,c=a.value,u=a.values,h=a.isTableTabFilter;if("id"!==o){var g=P(o),p=g.tool,m=g.name,v=g.column,b=r[p]||{},C=b[v]||{name:escape(m)};if(t[p][v]||n[p][v])if(c.endsWith(" ")){var x=C.categoryValues||[];x.push(c),C.categoryValues=x}else{var y=C.statusValues||[];y.push(c),C.statusValues=y}else C.value=c;b[v]=C,r[p]=b}else u&&u.length>0?r.ids={values:u.map((function(e){return e||""}))}:h&&s.push({id:o,value:c})}}catch(K){l.e(K)}finally{l.f()}var Z=r.ids,j=(0,I.Z)(r,A),F=[];Z&&F.push("id(values(".concat(Z.values.map(escape).join(","),"))")),s&&s.forEach((function(e){F.push("id_any(value(".concat(e.value,"))"))}));for(var W=0,N=Object.entries(j);W<N.length;W++){for(var B=(0,d.Z)(N[W],2),G=B[0],w=B[1],Y=[],S=0,k=Object.entries(w);S<k.length;S++){var V=(0,d.Z)(k[S],2),R=V[0],H=V[1],T="".concat(R,"*").concat(H.name,"*"),X=void 0;""!==(X=H.statusValues||H.categoryValues?U(H,t,G,R,n):"value(".concat(escape(H.value),")"))&&Y.push("".concat(T,"(").concat(X,")"))}Y.length>0&&F.push("".concat(G,"(").concat(Y.join(","),")"))}return F.join(",")}}({statusValues:e,categoryValues:t});return function(e,t){var i=X();if(!e)return K(i,t);var r=n(e);return r?K((0,c.Z)((0,c.Z)({},i),{},{filter:r}),t):(delete i.filter,K((0,c.Z)({},i),t))}},Q=function(e){K((0,c.Z)((0,c.Z)({},X()),e))},q="&#x2008;",$="&#x2007;",ee=function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"Unknown";(0,s.Z)(this,e),this._defaultOptions={whitespaceFormat:!1,html:!1,leadingZero:!0,additionalFormatting:function(e){return e}},this.significantDigits=t,this.maxPositiveDecimalPosition=-1,this.maxNegativeDecimalPosition=-1,this.name=n}return(0,l.Z)(e,[{key:"addDataItem",value:function(e){var t=this.format(e).split(/\.|,/),n=(0,d.Z)(t,2),i=n[0],r=n[1];this.maxPositiveDecimalPosition=Math.max(this.maxPositiveDecimalPosition,i&&"0"!==i?i.length:0),this.maxNegativeDecimalPosition=Math.max(this.maxNegativeDecimalPosition,r?r.length:0)}},{key:"format",value:function(e){var t=e.toString(),n="",i="",r=0,s=0,l=!1,a=!1;if("NaN"===t)return"NaN";if(t.endsWith("Infinity"))return t.replace("Infinity","Inf");if(t.includes("e")){var o=t.split("-"),c=(0,d.Z)(o,2),u=c[0],h=c[1],g=0;u.includes(".")&&(g=1),t=Number(e).toFixed(Number(h)+g)}for(var f=t.replace(/,/,".").indexOf(".");s<this.significantDigits-1&&t.length>r;){var p=t[r];if("."===p||","===p)n+=".",a=!0;else{if(!l){if("0"===p){r+=1,a&&(n+=p);continue}l=!0}n+=p,s+=1}r+=1}if(i=t.substring(r),""===n&&""===i&&(n=t),"."===n[0]&&(n="0".concat(n)),""!==i){var m="."===i[0];if(i=i.replace(/\./,""),i="".concat(i[0],".").concat(i.substr(1)),i=Math.round(Number(i)),(i=isNaN(i)?"":i.toString()).length>1&&"."!==i[0]){var v=i[0];i=i[1];for(var I=n.length,b=n.split("."),C=(0,d.Z)(b,2)[1],x=C&&C.length-1||0,y=C?"0.":"",Z=x;Z>0;)y+="0",Z-=1;for(n=function(e,t){var n=e,i=t;if("string"===typeof e&&(n=Number(e)),"string"===typeof t&&(i=Number(t)),Number.isInteger(n)||Number.isInteger(i))return n+i;var r=e.toString(),s=r.length,l=r.indexOf("."),a=t.toString(),o=a.length,c=a.indexOf("."),u=Math.max(s-l,o-c)-1;return Number((n+i).toFixed(u))}(n,y+=v).toFixed(x+1).substr(0,I);n.length<I;)n+="0"}var j=f;for(m&&(i=".".concat(i)),-1===f&&(j=t.length);n.length+i.length<j;)i+="0"}return"".concat(n).concat(i)}},{key:"build",value:function(){var e=this;return function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=(0,c.Z)((0,c.Z)({},e._defaultOptions),n),r=i.whitespaceFormat,s=i.html,l=i.leadingZero,a=i.additionalFormatting,o={significantDigits:e.significantDigits,maxDecimalInputLength:e.maxNegativeDecimalPosition};if(B(e.significantDigits))return a(t.toString(),o);var u=e.format(t);if("NaN"===(u=a(u,o)))return u;if(r){var h=s?q:" ",g=u.split(/\.|,/),f=(0,d.Z)(g,2),p=f[0],m=f[1];"0"!==p||l||(p=m?"":"0"),p=p||"";for(var v=(m=m||"")?".":h;m.length<e.maxNegativeDecimalPosition;)m+=" ";return s&&(p=p.replace(/ /g,$),m=m.replace(/ /g,$)),"".concat(p).concat(m?v:"").concat(m)}return!l&&u.startsWith("0.")?u.substr(1):u}}}]),e}(),te=function(e){var t=X(),n=[];t.hidden&&(n=t.hidden.split(",").filter((function(t){return Number.isInteger(parseInt(t))&&e.some((function(e){return e.toolIdx===parseInt(t)}))})).map((function(e){return parseInt(e)})));var i={};return Object.keys(t).filter((function(e){return/hidden[0-9]+/.test(e)})).forEach((function(n){var r=parseInt(n.replace("hidden","")),s=e.find((function(e){return e.toolIdx===r}));Number.isInteger(r)&&s&&(i[r]=t[n].split(",").filter((function(e){return Number.isInteger(parseInt(e))&&s.columns.some((function(t){return t.colIdx===parseInt(e)}))})).map((function(e){return parseInt(e)})))})),n.forEach((function(t){i[t]=e.find((function(e){return e.toolIdx===t})).columns.map((function(e){return e.colIdx}))})),e.forEach((function(e){i[e.toolIdx]||(i[e.toolIdx]=[])})),i},ne=function(e,t){var n,i=e.find((function(e){return n=e.columns.find((function(n){return"status"!==n.type&&!t[e.toolIdx].includes(n.colIdx)}))}));return n||(i=e.find((function(e){return n=e.columns.find((function(n){return"status"===n.type&&!t[e.toolIdx].includes(n.colIdx)}))}))),i&&n?[i.toolIdx,n.colIdx]:[void 0,void 0]},ie=function(e,t){var n,i={},r=(0,f.Z)(e);try{for(r.s();!(n=r.n()).done;){i[n.value]=!0}}catch(o){r.e(o)}finally{r.f()}var s,l=(0,f.Z)(t);try{for(l.s();!(s=l.n()).done;){var a=s.value;if(B(i[a]))return!1}}catch(o){l.e(o)}finally{l.f()}return!0},re=function(e){var t=e.toString().split(/,|\./),n=(0,d.Z)(t,2)[1];if(B(n)||0===n.length)return 1;for(var i=".",r=0;r<n.length-1;r+=1)i+="0";return i+="1"},se=function(e){var t=[];return(e=e.filter((function(e,t){return t%2===0&&0!==t}))).forEach((function(e){return t.push(e.columns.filter((function(e){return e.hidden})).map((function(e){return e.id})))})),t.flat()},le=["handler"],ae=["column","title","children"],oe=["runSet"],ce=["cell","href","toggleLinkOverlay","force"],ue=function(e){var t=e.handler,n=(0,I.Z)(e,le);return(0,j.jsx)("span",(0,c.Z)((0,c.Z)({onClick:t,title:"",className:"selectColumns"},n),{},{children:"Click here to select columns"}))},de=function(e){var t=e.column,n=e.title,i=void 0===n?"Click here to sort. Hold shift to multi-sort":n,r=e.children,s=(0,I.Z)(e,ae);return(0,j.jsx)("div",(0,c.Z)((0,c.Z)({title:i},s),{},{children:r||R(t)}))},he=function(e){var t=e.runSet,n=(0,I.Z)(e,oe);return(0,j.jsx)("span",(0,c.Z)((0,c.Z)({className:"header__tool-infos"},n),{},{title:H(t),children:H(t)}))},ge=function(e){var t=e.cell,n=e.href,i=void 0===n?t.value.href:n,r=e.toggleLinkOverlay,s=e.force,l=void 0!==s&&s,a=(0,I.Z)(e,ce),o=t.value.html,u=o?void 0:t.value.raw;return l||u||o?i?(0,j.jsx)("a",(0,c.Z)((0,c.Z)({href:i,onClick:function(e){return r(e,i)},dangerouslySetInnerHTML:o?{__html:o}:void 0},a),{},{children:u})):(0,j.jsx)("div",(0,c.Z)((0,c.Z)({dangerouslySetInnerHTML:o?{__html:o}:void 0},a),{},{children:u})):null},fe=function(e){return Object.freeze({Header:"",accessor:"separator"+e,className:"separator",columns:[{accessor:"separator"+e,className:"separator",width:2,minWidth:2}]})},pe=function(e,t,n){return[fe(t),{Header:(0,j.jsx)(he,{runSet:e}),columns:e.columns.map((function(e,i){return n(t,e,i)})),id:"runset-column"}]},me=n(1330),ve=n.n(me),Ie=["distincts","categories","statuses"],be="empty_row",Ce=function(e){return function(t){var n=(0,u.Z)(t);if(e.diff&&(n=n.filter((function(t){var n,i=(0,f.Z)(e.diff);try{for(i.s();!(n=i.n()).done;){var r,s=n.value.col,l={},a=(0,f.Z)(t.results);try{for(a.s();!(r=a.n()).done;){var o=r.value.values[s].raw;l[o]||(l[o]=!0)}}catch(c){a.e(c)}finally{a.f()}if(1===Object.keys(l).length)return!1}}catch(c){i.e(c)}finally{i.f()}return!0}))),!B(e.id)){var i=e.id,r=i.value,s=i.values;if(r){var l=E(r);n=n.filter((function(e){return e.id.some((function(e){return e===r||l.test(e)}))}))}else{var a=s.map((function(e){return{filterRegex:E(e),filterValue:e}}));n=n.filter((function(e){var t=e.id;return a.every((function(e,n){var i=e.filterRegex,r=e.filterValue,s=t[n];return!(!B(r)&&""!==r)||!B(s)&&""!==s&&(s===r||i.test(s))}))}))}}var o=n.filter((function(t){for(var n in function(e,t){return Object.keys(t).filter((function(t){return!e.includes(t)})).reduce((function(e,n){return e[n]=t[n],e}),{})}(["diff","id"],e))for(var i in e[n]){var r,s=!1,l=!1,a=!1,o=(0,f.Z)(e[n][i]);try{for(o.s();!(r=o.n()).done;){var c=r.value,u=c.value,d=c.min,h=c.max,g=c.category,p=c.status;if(B(d)||B(h))if(B(g))if(B(p)){var m=t.results[n].values[i].raw;if(B(m)){s=!1;continue}s=s||u===m||m.includes(u)}else{var v="empty"===t.results[n].category&&p===be;a=t.results[n].values[i].raw===p||a||v,s=l&&a}else s=(l=t.results[n].category===g||l)&&a;else{var I=t.results[n].values[i].raw;if(B(I)){s=!1;continue}var b=Number(I);s=s||b>=d&&b<=h}if(s)break}}catch(C){o.e(C)}finally{o.f()}if(!s)return!1}return!0}));return o}},xe=(D={},(0,p.Z)(D,"empty","Empty rows"),(0,p.Z)(D,"aborted","\u2014"),D),ye=[50,100,250,500,1e3,2500],Ze=function(){var e=X();return e.sort?e.sort.split(";").map((function(e){var t=e.split(",");return{id:t[0],desc:"desc"===t[1]}})):[]},je=function(e){var t=(0,i.useState)(!0),n=(0,d.Z)(t,2),r=n[0],s=n[1],l=(0,i.useState)(Ce()),a=(0,d.Z)(l,2),o=a[0],h=a[1],p=(0,i.useState)({}),I=(0,d.Z)(p,2),b=I[0],C=I[1],x=(0,i.useState)(!1),y=(0,d.Z)(x,2),Z=y[0],A=y[1],F=(0,g.k6)(),Y=function(t){"id"===t.id&&(t.isTableTabFilter=!0);var n=[].concat((0,u.Z)(e.filters.filter((function(e){return e.id!==t.id}))),[t]);n=n.filter((function(e){return""!==e.value})),e.addTypeToFilter(n);var i=[];if("status"===t.type){var r=P(t.id),s=r.tool,l=r.name,a=r.column,o=t.value;if("all"===o.trim())i=function(t){var n,i=t.tool,r=t.name,s=t.column,l=[],a=(0,f.Z)(e.statusValues[i][s]);try{for(a.s();!(n=a.n()).done;){var o=n.value;l.push({id:"".concat(i,"_").concat(r,"_").concat(s),value:o})}}catch(g){a.e(g)}finally{a.f()}var c,u=(0,f.Z)(e.categoryValues[i][s]);try{for(u.s();!(c=u.n()).done;){var d=c.value,h="".concat(d," ");l.push({id:"".concat(i,"_").concat(r,"_").concat(s),value:h})}}catch(g){u.e(g)}finally{u.f()}return l}({tool:s,name:l,column:a}),n=n.filter((function(e){var n=e.id,i=e.value;return!(n===t.id&&"all"===i.trim())}));else i=function(t){var n,i=t.tool,r=t.name,s=t.column,l=t.isCategory,a=l?e.statusValues:e.categoryValues,o=[],c=(0,f.Z)(a[i][s]);try{for(c.s();!(n=c.n()).done;){var u=n.value;o.push({id:"".concat(i,"_").concat(r,"_").concat(s),value:"".concat(u).concat(l?"":" ")})}}catch(d){c.e(d)}finally{c.f()}return o}({tool:s,name:l,column:a,isCategory:" "===o[o.length-1]})}e.addTypeToFilter(i),e.filterPlotData([].concat((0,u.Z)(n),(0,u.Z)(i)),!0)};function S(e){var t=e.column,n=t.id,r=(t.filter,e.currFilters),s=n+"_filter",l=r.find((function(e){return e.id===n})),a=l?l.value:"",o=(0,i.useState)(""),c=(0,d.Z)(o,2),u=c[0],h=c[1],g=(0,i.useState)(a),f=(0,d.Z)(g,2),p=f[0],m=f[1],v="id"===n&&Z?"To edit, please clear task filter in the sidebar":"text";return(0,j.jsx)("input",{id:s,className:"filter-field",placeholder:v,defaultValue:p,onChange:function(e){var t=e.target.value;m(t),clearTimeout(u),h(setTimeout((function(){Y({id:n,value:t}),document.getElementById(s).focus()}),500))},disabled:"id"===n&&Z,type:"search"})}function R(t){var n=t.column,i=n.id,r=(n.filter,t.runSetIdx),s=t.columnIdx,l=e.categoryValues[r][s],a=function(e){var t=e.categoryFilters,n=e.statusFilters,i=e.categoryFilterValues,r=e.statusFilterValues,s=[];return ie(t,i)||(s=t),ie(n,r)||(s=[].concat((0,u.Z)(s),(0,u.Z)(n))),s}({categoryFilters:V([r,"categories"],[],o),statusFilters:V([r,s],[],o),categoryFilterValues:l.map((function(e){return"".concat(e," ")})),statusFilterValues:e.statusValues[r][s]}),c=0===a.length,d=a.length>1||a[0]===W,h=a&&a[0],g=(c?"all ":d&&"multiple")||h;return(0,j.jsxs)("select",{className:"filter-field",onChange:function(e){return Y({id:i,value:e.target.value})},value:g,children:[d&&(0,j.jsx)("option",{value:"multiple",disabled:!0,children:a.map((function(e){return e.trim()})).filter((function(e){return"all"!==e&&e!==W})).join(", ")||"No filters selected"}),(0,j.jsx)("option",{value:"all ",children:"Show all"}),l.filter((function(e){return e in xe})).map((function(e){return(0,j.jsx)("option",{value:e+" ",children:xe[e]},e)})),(0,j.jsx)("optgroup",{label:"Category",children:l.filter((function(e){return!(e in xe)})).sort().map((function(e){return(0,j.jsx)("option",{value:e+" ",className:e,children:e},e)}))}),(0,j.jsx)("optgroup",{label:"Status",children:e.statusValues[r][s].filter((function(e){return e!==be})).sort().map((function(e){return(0,j.jsx)("option",{value:e,children:e},e)}))})]})}function H(e){var t=e.column,n=t.id,r=(t.filter,e.currFilters),s=n+"_filter",l=r.find((function(e){return e.id===n})),a=l?l.value:"",o=(0,i.useState)(""),c=(0,d.Z)(o,2),u=c[0],h=c[1],g=(0,i.useState)(a),f=(0,d.Z)(g,2),p=f[0],m=f[1];return(0,j.jsx)("input",{id:s,className:"filter-field",placeholder:"Min:Max",defaultValue:p,onChange:function(e){var t=e.target.value;m(t),clearTimeout(u),h(setTimeout((function(){Y({id:n,value:t}),document.getElementById(s).focus()}),500))},type:"search",pattern:"([+-]?[0-9]*(\\.[0-9]*)?)(:[+-]?[0-9]*(\\.[0-9]*)?)?"})}var T=(0,i.useCallback)((function(t){return(0,j.jsx)(S,(0,c.Z)((0,c.Z)({disableTaskText:Z},t),{},{currFilters:e.filters}))}),[Z,e.filters]),L=(0,i.useCallback)((function(t){return(0,j.jsx)(H,(0,c.Z)((0,c.Z)({},t),{},{currFilters:e.filters}))}),[e.filters]),O=(0,i.useMemo)((function(){var t=function(t,n,i){if("status"===n.type)return function(t,n,i){var r="".concat(t,"_").concat(n.display_title,"_").concat(i),s=b[r];return{id:r,Header:(0,j.jsx)(de,{column:n}),className:"reg-column",hidden:e.hiddenCols[t].includes(n.colIdx),minWidth:50,width:s||k(n,10),accessor:function(e){return e.results[t].values[i]},Cell:function(n){var i,r=n.row.original.results[t].category,s=n.row.original.results[t].href;return"aborted"===r?(s=void 0,i="Result missing because run was aborted or not executed"):"empty"===r?i="Result missing because task was not part of benchmark set":s&&(i="Click here to show output of tool"),(0,j.jsx)(ge,{cell:n,href:s,className:r,toggleLinkOverlay:e.toggleLinkOverlay,title:i,force:!0})},sortType:function(e,t,n,i){return w(e.values[n],t.values[n])},filter:function(e){return e},Filter:function(e){return(0,j.jsx)(R,(0,c.Z)((0,c.Z)({},e),{},{runSetIdx:t,columnIdx:i}))}}}(t,n,i);var r="".concat(t,"_").concat(n.display_title,"_").concat(i),s=b[r],l=N(n)?L:T;return{id:r,Header:(0,j.jsx)(de,{column:n}),className:"reg-column",hidden:e.hiddenCols[t].includes(n.colIdx),minWidth:50,width:s||k(n),accessor:function(e){return e.results[t].values[i]},Cell:function(t){return(0,j.jsx)(ge,{cell:t,toggleLinkOverlay:e.toggleLinkOverlay})},filter:function(e){return e},Filter:l,sortType:function(e,t,i,r){return N(n)?(s=e.values[i],l=t.values[i],G(s,1/0)-G(l,1/0)):w(e.values[i],t.values[i]);var s,l}}},n=e.tools.map((function(e,n){return pe(e,n,t)})).flat();return[{Header:function(){return(0,j.jsx)("div",{className:"fixed-task-header",children:(0,j.jsx)("form",{children:(0,j.jsxs)("label",{title:"Fix the first column",children:["Fixed task:",(0,j.jsx)("input",{name:"fixed",type:"checkbox",checked:r,onChange:function(e){var t=e.target;return s(t.checked)}})]})})})},className:"fixed-task",id:"task-id-column",sticky:r?"left":"",columns:[(0,c.Z)((0,c.Z)({width:.3*window.innerWidth,minWidth:230},b.id&&{width:b.id}),{},{Header:(0,j.jsx)(de,{children:(0,j.jsx)(ue,{handler:e.selectColumn})}),accessor:"id",Cell:function(t){var n=t.row.original.id.map((function(e){return(0,j.jsx)("span",{className:"row_id",children:e},e)})),i=t.row.original.href;return i?(0,j.jsx)("a",{className:"row__name--cellLink",href:i,title:"Click here to show source code",onClick:function(t){return e.toggleLinkOverlay(t,i)},children:n},i):(0,j.jsx)("span",{title:"This task has no associated file",children:n})},Filter:T,sortType:function(e,t,n,i){var r=Array.isArray(e.values[n])?e.values[n].join():e.values[n],s=Array.isArray(t.values[n])?t.values[n].join():t.values[n];return r>s?1:r<s?-1:0}})]}].concat(n)}),[b,r,e,T,L]),U=(0,i.useMemo)((function(){return e.tableData}),[e.tableData]),D=(0,i.useMemo)((function(){return{Filter:(0,j.jsx)(j.Fragment,{})}}),[]),E=(0,m.useTable)({columns:O,data:U,defaultColumn:D,initialState:{sortBy:Ze(),pageIndex:parseInt(X().page)-1||0,hiddenColumns:se(O),pageSize:parseInt(X().pageSize)||250}},m.useFilters,m.useFlexLayout,m.useResizeColumns,m.useSortBy,m.usePagination,v.useSticky),M=E.getTableProps,J=E.getTableBodyProps,z=E.headerGroups,_=(E.rows,E.prepareRow),Q=E.page,q=E.canPreviousPage,$=E.canNextPage,ee=E.pageOptions,te=E.pageCount,ne=E.gotoPage,re=E.nextPage,le=E.previousPage,ae=E.setPageSize,oe=E.setSortBy,ce=E.state,he=ce.pageIndex,fe=ce.pageSize,me=ce.sortBy,Ie=ce.columnResizing;function Ce(){var t,n={},i=(0,f.Z)(e.filters);try{for(i.s();!(t=i.n()).done;){var r=t.value,s=r.value,l=r.id,a=P(l),o=a.tool,c=a.column,u=n[o]||{};if("string"===typeof s&&" "===s[s.length-1]){var d=u.categories||[];d.push(s),u.categories=d}else{var h=u[c]||[];h.push(s),u[c]=h}n[o]=u}}catch(g){i.e(g)}finally{i.f()}return n}(0,i.useEffect)((function(){var e=me.map((function(e){return e.id+","+(e.desc?"desc":"asc")})).join(";"),t=e.length?e:void 0;X().sort!==t&&K({sort:t},{keepOthers:!0})}),[me]),(0,i.useEffect)((function(){var e=250!==fe?fe:void 0;X().pageSize!==e&&K({pageSize:e},{keepOthers:!0})}),[fe]),(0,i.useEffect)((function(){var e=he&&0!==he?Number(he)+1:void 0;X().page!==e&&K({page:e},{keepOthers:!0})}),[he]),(0,i.useEffect)((function(){var e=Ie.columnWidths;!Ie.isResizingColumn&&Object.keys(e).length>0&&C((0,c.Z)((0,c.Z)({},b),e))}),[Ie,b]),(0,i.useEffect)((function(){var t,n=(0,f.Z)(e.filters);try{for(n.s();!(t=n.n()).done;){var i=t.value,r=i.values;"id"===i.id&&A(!B(r))}}catch(l){n.e(l)}finally{n.f()}var s=Ce();ve()(s,o)||h(s),he>=te&&ne(te-1)}),[e.filters,o,ne,he,te]),(0,i.useEffect)((function(){return F.listen((function(e){ae(X().pageSize||250),oe(Ze()),ne(X().page-1||0)}))}),[F,ne,ae,oe]);var je=function(e){return(0,j.jsx)("div",(0,c.Z)((0,c.Z)({className:"tr headergroup"},e.getHeaderGroupProps()),{},{children:e.headers.map((function(e){return(0,j.jsxs)("div",(0,c.Z)((0,c.Z)({},e.getHeaderProps({className:"th header ".concat(e.headers?"outer ":"").concat(e.className)})),{},{children:[(0,j.jsx)("div",(0,c.Z)((0,c.Z)({},e.canSort&&(!e.className||!e.className.includes("separator"))&&e.getSortByToggleProps({className:"header-sort-container clickable ".concat(e.isSorted?e.isSortedDesc?"sorted-desc ":"sorted-asc ":"")})),{},{children:e.render("Header")})),(!e.className||!e.className.includes("separator"))&&(0,j.jsx)("div",(0,c.Z)((0,c.Z)({},e.getResizerProps()),{},{className:"resizer ".concat(e.isResizing?"isResizing":"")}))]}))}))}))};return(0,j.jsx)("div",{className:"main-table",children:(0,j.jsxs)("div",{className:"table sticky",children:[(0,j.jsx)("div",{className:"table-content",children:(0,j.jsxs)("div",(0,c.Z)((0,c.Z)({className:"table-container"},M()),{},{children:[function(e){var t=e[0],n=e.filter((function(e){return e.headers.some((function(e){return e.canFilter}))}));return(0,j.jsxs)("div",{className:"table-header",children:[je(t),(0,j.jsxs)("div",{className:"shadow-container",children:[e.slice(1).map(je),n.map((function(e){return(0,j.jsx)("div",(0,c.Z)((0,c.Z)({className:"tr headergroup filter"},e.getHeaderGroupProps()),{},{children:e.headers.map((function(e){return(0,j.jsx)("div",(0,c.Z)((0,c.Z)({},e.getHeaderProps({className:"th header filter ".concat(e.headers?"outer ":"").concat(e.className)})),{},{children:e.canFilter?e.render("Filter"):null}))}))}))}))]})]})}(z),(0,j.jsx)("div",(0,c.Z)((0,c.Z)({},J()),{},{className:"table-body body",children:Q.map((function(e){return _(e),(0,j.jsx)("div",(0,c.Z)((0,c.Z)({},e.getRowProps()),{},{className:"tr",children:e.cells.map((function(e){return(0,j.jsx)("div",(0,c.Z)((0,c.Z)({},e.getCellProps({className:"td "+(e.column.className||"")})),{},{children:e.render("Cell")}))}))}))}))}))]}))}),(0,j.jsxs)("div",{className:"pagination",children:[(0,j.jsxs)("div",{id:"pagination-previous",className:"pagination-container",children:[(0,j.jsx)("div",{onClick:function(){return le()},className:"pagination-element button".concat(q?"":" disabled"),children:"Previous"})," "]}),(0,j.jsxs)("div",{id:"pagination-center",className:"pagination-container",children:[(0,j.jsxs)("div",{id:"goto-page-element",className:"pagination-element",children:["Page",(0,j.jsx)("input",{"aria-label":"jump to page",type:"number",value:Number(he)+1,onChange:function(e){return ne(Number(e.target.value)-1)}}),"of ",ee.length]}),(0,j.jsx)("div",{id:"set-page-element",className:"pagination-element",children:(0,j.jsx)("select",{value:fe,onChange:function(e){return ae(Number(e.target.value))},children:ye.map((function(e){return(0,j.jsxs)("option",{value:e,children:[e," rows"]},e)}))})})]}),(0,j.jsxs)("div",{id:"pagination-next",className:"pagination-container",children:[(0,j.jsx)("div",{onClick:function(){return re()},className:"pagination-element button".concat($?"":" disabled"),children:"Next"})," "]})]})]})})},Ae=n(4165),Fe=n(5861);n(9e3);var We=[],Ne={},Be=1,Ge=[{template:"data:text/plain;base64,Ly8gVGhpcyBmaWxlIGlzIHBhcnQgb2YgQmVuY2hFeGVjLCBhIGZyYW1ld29yayBmb3IgcmVsaWFibGUgYmVuY2htYXJraW5nOgovLyBodHRwczovL2dpdGh1Yi5jb20vc29zeS1sYWIvYmVuY2hleGVjCi8vCi8vIFNQRFgtRmlsZUNvcHlyaWdodFRleHQ6IDIwMTktMjAyMCBEaXJrIEJleWVyIDxodHRwczovL3d3dy5zb3N5LWxhYi5vcmc+Ci8vCi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wCgovLyBDT1BZIE9GIHV0aWxzLmpzLCBhcyBpbXBvcnRzIHdpbGwgbm90IHdvcmsgaGVyZQovKioKICogRnVuY3Rpb24gdG8gc2FmZWx5IGFkZCB0d28gbnVtYmVycyBpbiBhIHdheSB0aGF0IHNob3VsZCBtaXRpZ2F0ZSBlcnJvcnMKICogY2F1c2VkIGJ5IGluYWNjdXJhdGUgZmxvYXRpbmcgcG9pbnQgb3BlcmF0aW9ucyBpbiBqYXZhc2NyaXB0CiAqIEBwYXJhbSB7TnVtYmVyfFN0cmluZ30gYSAtIFRoZSBiYXNlIG51bWJlcgogKiBAcGFyYW0ge051bWJlcnxTdHJpbmd9IGIgLSBUaGUgbnVtYmVyIHRvIGFkZAogKgogKiBAcmV0dXJucyB7TnVtYmVyfSBUaGUgcmVzdWx0IG9mIHRoZSBhZGRpdGlvbgogKi8KY29uc3Qgc2FmZUFkZCA9IChhLCBiKSA9PiB7CiAgbGV0IGFOdW0gPSBhOwogIGxldCBiTnVtID0gYjsKCiAgaWYgKHR5cGVvZiBhID09PSAic3RyaW5nIikgewogICAgYU51bSA9IE51bWJlcihhKTsKICB9CiAgaWYgKHR5cGVvZiBiID09PSAic3RyaW5nIikgewogICAgYk51bSA9IE51bWJlcihiKTsKICB9CgogIGlmIChOdW1iZXIuaXNJbnRlZ2VyKGFOdW0pIHx8IE51bWJlci5pc0ludGVnZXIoYk51bSkpIHsKICAgIHJldHVybiBhTnVtICsgYk51bTsKICB9CgogIGNvbnN0IGFTdHJpbmcgPSBhLnRvU3RyaW5nKCk7CiAgY29uc3QgYUxlbmd0aCA9IGFTdHJpbmcubGVuZ3RoOwogIGNvbnN0IGFEZWNpbWFsUG9pbnQgPSBhU3RyaW5nLmluZGV4T2YoIi4iKTsKICBjb25zdCBiU3RyaW5nID0gYi50b1N0cmluZygpOwogIGNvbnN0IGJMZW5ndGggPSBiU3RyaW5nLmxlbmd0aDsKICBjb25zdCBiRGVjaW1hbFBvaW50ID0gYlN0cmluZy5pbmRleE9mKCIuIik7CgogIGNvbnN0IGxlbmd0aCA9IE1hdGgubWF4KGFMZW5ndGggLSBhRGVjaW1hbFBvaW50LCBiTGVuZ3RoIC0gYkRlY2ltYWxQb2ludCkgLSAxOwoKICByZXR1cm4gTnVtYmVyKChhTnVtICsgYk51bSkudG9GaXhlZChsZW5ndGgpKTsKfTsKCmNvbnN0IG1hdGhTdHJpbmdNYXggPSAoYSwgYikgPT4gewogIGNvbnN0IG51bUEgPSBOdW1iZXIoYSk7CiAgY29uc3QgbnVtQiA9IE51bWJlcihiKTsKICByZXR1cm4gbnVtQSA+IG51bUIgPyBhIDogYjsKfTsKCmNvbnN0IG1hdGhTdHJpbmdNaW4gPSAoYSwgYikgPT4gewogIGNvbnN0IG51bUEgPSBOdW1iZXIoYSk7CiAgY29uc3QgbnVtQiA9IE51bWJlcihiKTsKICByZXR1cm4gbnVtQSA8IG51bUIgPyBhIDogYjsKfTsKCi8qKgogKiBUaGlzIGZ1bmN0aW9uIGVpdGhlciBhZGRzIHR3byBudW1iZXJzIG9yIGluY3JlbWVudHMgdGhlIG51bWJlcgogKiBwYXNzZWQgaW4gdGhlIGZpcnN0IHBhcmFtZXRlciBpZiB0aGUgdHlwZSBpcyAic3RhdHVzIi4KICogSWYgdGhlIHNlY29uZCBwYXJhbWV0ZXIgaXMgbm90IGEgbnVtYmVyIGFuZCB0aGUgdHlwZSBpcyBub3Qgc3RhdHVzLAogKiB0aGUgZmlyc3QgcGFyYW1ldGVyIHdpbGwgYmUgcmV0dXJuZWQKICoKICogQHBhcmFtIHtOdW1iZXJ9IGEKICogQHBhcmFtIHsqfSBiCiAqIEBwYXJhbSB7U3RyaW5nfSB0eXBlCiAqLwpjb25zdCBtYXliZUFkZCA9IChhLCBiLCB0eXBlKSA9PiB7CiAgaWYgKE51bWJlcihiKSkgewogICAgcmV0dXJuIHNhZmVBZGQoYSwgYik7CiAgfQogIGlmICh0eXBlID09PSAic3RhdHVzIikgewogICAgcmV0dXJuIGEgKyAxOwogIH0KICByZXR1cm4gYTsKfTsKY29uc3QgcmVtb3ZlUm91bmRPZmYgPSAobnVtKSA9PiB7CiAgY29uc3Qgc3RyID0gbnVtLnRvU3RyaW5nKCk7CiAgaWYgKHN0ci5tYXRjaCgvXC4uKz8wezIsfVxkJC8pKSB7CiAgICByZXR1cm4gTnVtYmVyKHN0ci5zdWJzdHIoMCwgc3RyLmxlbmd0aCAtIDEpKTsKICB9CiAgcmV0dXJuIG51bTsKfTsKCmNvbnN0IGNhbGN1bGF0ZU1lYW4gPSAodmFsdWVzLCBhbGxJdGVtcykgPT4gewogIGNvbnN0IG51bU1pbiA9IE51bWJlcih2YWx1ZXMubWluKTsKICBjb25zdCBudW1NYXggPSBOdW1iZXIodmFsdWVzLm1heCk7CiAgaWYgKG51bU1pbiA9PT0gLUluZmluaXR5ICYmIG51bU1heCA9PT0gSW5maW5pdHkpIHsKICAgIHZhbHVlcy5hdmcgPSAiTmFOIjsKICB9IGVsc2UgaWYgKG51bU1pbiA9PT0gLUluZmluaXR5KSB7CiAgICB2YWx1ZXMuYXZnID0gIi1JbmZpbml0eSI7CiAgfSBlbHNlIGlmIChudW1NYXggPT09IEluZmluaXR5KSB7CiAgICB2YWx1ZXMuYXZnID0gIkluZmluaXR5IjsKICB9IGVsc2UgewogICAgdmFsdWVzLmF2ZyA9IHJlbW92ZVJvdW5kT2ZmKHZhbHVlcy5zdW0gLyBhbGxJdGVtcy5sZW5ndGgpOwogIH0KfTsKCmNvbnN0IGNhbGN1bGF0ZU1lZGlhbiA9ICh2YWx1ZXMsIGFsbEl0ZW1zKSA9PiB7CiAgaWYgKGFsbEl0ZW1zLmxlbmd0aCAlIDIgPT09IDApIHsKICAgIGNvbnN0IGlkeCA9IGFsbEl0ZW1zLmxlbmd0aCAvIDI7CiAgICB2YWx1ZXMubWVkaWFuID0KICAgICAgKE51bWJlcihhbGxJdGVtc1tpZHggLSAxXS5jb2x1bW4pICsgTnVtYmVyKGFsbEl0ZW1zW2lkeF0uY29sdW1uKSkgLyAyLjA7CiAgfSBlbHNlIHsKICAgIHZhbHVlcy5tZWRpYW4gPSBhbGxJdGVtc1tNYXRoLmZsb29yKGFsbEl0ZW1zLmxlbmd0aCAvIDIuMCldLmNvbHVtbjsKICB9Cn07CmNvbnN0IGNhbGN1bGF0ZVN0ZGV2ID0gKGhhc05lZ0luZiwgaGFzUG9zSW5mLCB2YXJpYW5jZSwgc2l6ZSkgPT4gewogIGlmIChoYXNOZWdJbmYgJiYgaGFzUG9zSW5mKSB7CiAgICByZXR1cm4gIk5hTiI7CiAgfQogIGlmIChoYXNOZWdJbmYgfHwgaGFzUG9zSW5mKSB7CiAgICByZXR1cm4gSW5maW5pdHk7CiAgfQogIHJldHVybiBNYXRoLnNxcnQodmFyaWFuY2UgLyBzaXplKTsKfTsKCmNvbnN0IHBhcnNlUHl0aG9uSW5maW5pdHlWYWx1ZXMgPSAoZGF0YSkgPT4KICBkYXRhLm1hcCgoaXRlbSkgPT4gewogICAgaWYgKGl0ZW0uY29sdW1uVHlwZSA9PT0gInN0YXR1cyIgfHwgIWl0ZW0uY29sdW1uLmVuZHNXaXRoKCJJbmYiKSkgewogICAgICByZXR1cm4gaXRlbTsKICAgIH0KICAgIC8vIFdlIGhhdmUgYSBweXRob24gSW5maW5pdHkgdmFsdWUgdGhhdCB3ZSB3YW50IHRvIHRyYW5zZmVyIHRvIGEgc3RyaW5nCiAgICAvLyB0aGF0IGNhbiBiZSBpbnRlcnByZXRlZCBhcyBhIEphdmFTY3JpcHQgSW5maW5pdHkgdmFsdWUKICAgIGl0ZW0uY29sdW1uID0gaXRlbS5jb2x1bW4ucmVwbGFjZSgiSW5mIiwgIkluZmluaXR5Iik7CiAgICByZXR1cm4gaXRlbTsKICB9KTsKCi8vIElmIGEgYnVja2V0IGNvbnRhaW5zIGEgTmFOIHZhbHVlLCB3ZSBjYW4gbm90IHBlcmZvcm0gYW55IHN0YXQgY2FsY3VsYXRpb24KY29uc3Qgc2hvdWxkU2tpcEJ1Y2tldCA9IChidWNrZXRNZXRhLCBrZXkpID0+IHsKICBpZiAoYnVja2V0TWV0YVtrZXldICYmIGJ1Y2tldE1ldGFba2V5XS5oYXNOYU4pIHsKICAgIHJldHVybiB0cnVlOwogIH0KICByZXR1cm4gZmFsc2U7Cn07CgovKioKICogRnVuY3Rpb24gdGhhdCBrZWVwcyB0cmFjayBvZiB0aGUgbWF4IGlucHV0dGVkIGRlY2ltYWwgbGVuZ3RoIG9mIGNvbHVtbiB2YWx1ZXMuCiAqIFRoaXMgaXMgdXNlZCBmb3IgY29uZGl0aW9uYWwgZm9ybWF0dGluZyBpbiB0aGUgc3RhdHMgbW9kdWxlIHRvIGRldGVybWluZSB0aGUgbWF4aW11bQogKiBhbW91bnQgb2YgcGFkZGVkIDBzCiAqCiAqIEB0eXBlZGVmIFVwZGF0ZU1heERlY2ltYWxNZXRhSW5mb1BhcmFtCiAqIEBwYXJhbSB7U3RyaW5nfSBjb2x1bW5UeXBlIC0gVGhlIHR5cGUgb2YgdGhlIGN1cnJlbnQgY29sdW1uCiAqIEBwYXJhbSB7T2JqZWN0fSBjb2x1bW4gLSBUaGUgY29sdW1uIG9iamVjdAogKiBAcGFyYW0ge09iamVjdH0gYnVja2V0IC0gVGhlIGN1cnJlbnQgc3RhdCBidWNrZXQgaW4gY29udGV4dAogKgogKiBAcGFyYW0ge1VwZGF0ZU1heERlY2ltYWxNZXRhSW5mb1BhcmFtfSBwYXJhbQogKi8KY29uc3QgdXBkYXRlTWF4RGVjaW1hbE1ldGFJbmZvID0gKHsgY29sdW1uVHlwZSwgY29sdW1uLCBidWNrZXQgfSkgPT4gewogIGlmIChjb2x1bW5UeXBlICE9PSAic3RhdHVzIikgewogICAgY29uc3QgWywgZGVjaW1hbF0gPSBjb2x1bW4uc3BsaXQoIi4iKTsKICAgIGJ1Y2tldC5tZXRhLm1heERlY2ltYWxzID0gTWF0aC5tYXgoCiAgICAgIGJ1Y2tldC5tZXRhLm1heERlY2ltYWxzLAogICAgICBkZWNpbWFsPy5sZW5ndGggPz8gMCwKICAgICk7CiAgfQp9OwoKLyoqCiAqIEB0eXBlZGVmICBNZXRhSW5mbwogKiAgQWRkaXRpb25hbCBtZXRhaW5mb3JtYXRpb24gdG8gYmUgdXNlZCBmb3IgcG9zdC1wcm9jZXNzaW5nIChsaWtlIG51bWJlciBmb3JtYXR0aW5nKQogKiBAcHJvcCB7c3RyaW5nfG51bGx9IHR5cGUgLSBUaGUgY29sdW1uIHR5cGUKICogQHByb3Age251bWJlcn0gbWF4RGVjaW1hbHMgLSBUaGUgbWF4aW11bSBhbW91bnQgb2YgZGVjaW1hbHMgYWNyb3NzIGFsbCBudW1iZXJzIGluIHRoZSBidWNrZXQKICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VkIGZvciBudW1iZXIgZm9ybWF0dGluZwogKi8KCi8qKgogKiBAdHlwZWRlZiBCdWNrZXQKICogU3RhdGlzdGljcyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIHJlYWN0IHRhYmxlIGFyZSBjYWxjdWxhdGVkIGluIGJ1Y2tldHMsIGVhY2ggYnVja2V0IHJlcHJlc2VudGluZyBvbmUgInJvdyIgaW4gdGhlCiAqIHN0YXRpc3RpY3MgdGFibGUgKHRvdGFsLCBjb3JyZWN0LCBjb3JyZWN0IHRydWUsIGV0YykuCiAqIFRoaXMgb2JqZWN0IHN0b3JlcyBhbGwgYWNjdW11bGF0ZWQgaW5mb3JtYXRpb24gYWJvdXQgdGhpcyBidWNrZXQuCiAqCiAqIEBwcm9wIHtudW1iZXJ9IHN1bSAtIFRoZSBzdW0gb2YgdGhlIGJ1Y2tldAogKiBAcHJvcCB7bnVtYmVyfSBhdmcgLSBUaGUgYXZlcmFnZSBvZiB0aGUgYnVja2V0CiAqIEBwcm9wIHtudW1iZXJ8c3RyaW5nfSBtYXggLSBUaGUgbWF4aW1hbCB2YWx1ZSBvZiB0aGUgYnVja2V0CiAqIEBwcm9wIHtudW1iZXJ9IG1lZGlhbiAtIFRoZSBtZWRpYW4gdmFsdWUgb2YgdGhlIGJ1Y2tldAogKiBAcHJvcCB7bnVtYmVyfHN0cmluZ30gbWluIC0gVGhlIG1pbmltdW0gdmFsdWUgb2YgdGhlIGJ1Y2tldAogKiBAcHJvcCB7bnVtYmVyfSBzdGRldiAtIFRoZSBzdGFuZGFyZCBkZXZpYXRpb24gb2YgdGhlIGJ1Y2tldAogKiBAcHJvcCB7bnVtYmVyfSB2YXJpYW5jZSAtIFRoZSB2YXJpYW5jZSBvZiB0aGUgYnVja2V0CiAqIEBwcm9wIHtNZXRhSW5mb30gW21ldGFdIC0gTWV0YSBpbmZvcm1hdGlvbiBvZiB0aGUgYnVja2V0CiAqLwoKb25tZXNzYWdlID0gZnVuY3Rpb24gKGUpIHsKICBjb25zdCB7IGRhdGEsIHRyYW5zYWN0aW9uIH0gPSBlLmRhdGE7CgogIC8vIHRlbXBsYXRlCiAgLyoqIEBjb25zdCB7IEJ1Y2tldCB9ICovCiAgY29uc3QgZGVmYXVsdE9iaiA9IHsKICAgIHN1bTogMCwKICAgIGF2ZzogMCwKICAgIG1heDogIi1JbmZpbml0eSIsCiAgICBtZWRpYW46IDAsCiAgICBtaW46ICJJbmZpbml0eSIsCiAgICBzdGRldjogMCwKICAgIHZhcmlhbmNlOiAwLAogIH07CgogIC8qKiBAY29uc3Qge01ldGFJbmZvfSAqLwogIGNvbnN0IG1ldGFUZW1wbGF0ZSA9IHsKICAgIHR5cGU6IG51bGwsCiAgICBtYXhEZWNpbWFsczogMCwKICB9OwoKICAvLyBDb3B5IG9mIHRoZSB0ZW1wbGF0ZSB3aXRoIGFsbCB2YWx1ZXMgcmVwbGFjZWQgd2l0aCBOYU4KICBjb25zdCBuYW5PYmogPSB7IC4uLmRlZmF1bHRPYmogfTsKICBmb3IgKGNvbnN0IG9iaktleSBvZiBPYmplY3Qua2V5cyhuYW5PYmopKSB7CiAgICBuYW5PYmpbb2JqS2V5XSA9ICJOYU4iOwogIH0KCiAgbGV0IGNvcHkgPSBbLi4uZGF0YV0uZmlsdGVyKAogICAgKGkpID0+IGkgJiYgaS5jb2x1bW4gIT09IHVuZGVmaW5lZCAmJiBpLmNvbHVtbiAhPT0gbnVsbCwKICApOwogIGNvcHkgPSBwYXJzZVB5dGhvbkluZmluaXR5VmFsdWVzKGNvcHkpOwoKICBpZiAoY29weS5sZW5ndGggPT09IDApIHsKICAgIC8vIE5vIGRhdGEgdG8gcGVyZm9ybSBjYWxjdWxhdGlvbnMgd2l0aAogICAgcG9zdFJlc3VsdCh7IHRvdGFsOiB1bmRlZmluZWQgfSwgdHJhbnNhY3Rpb24pOwogICAgcmV0dXJuOwogIH0KCiAgY29uc3QgeyBjb2x1bW5UeXBlIH0gPSBjb3B5WzBdOwogIG1ldGFUZW1wbGF0ZS50eXBlID0gY29sdW1uVHlwZTsKCiAgY29weS5zb3J0KChhLCBiKSA9PiBhLmNvbHVtbiAtIGIuY29sdW1uKTsKCiAgLyoqIEB0eXBlIHtPYmplY3QuPHN0cmluZywgQnVja2V0Pn0gKi8KICBjb25zdCBidWNrZXRzID0ge307CiAgY29uc3QgYnVja2V0TmFOSW5mbyA9IHt9OyAvLyB1c2VkIHRvIHN0b3JlIE5hTiBpbmZvIG9mIGJ1Y2tldHMKCiAgLyoqIEB0eXBlIHtCdWNrZXR9ICovCiAgbGV0IHRvdGFsID0geyAuLi5kZWZhdWx0T2JqLCBpdGVtczogW10sIG1ldGE6IHsgLi4ubWV0YVRlbXBsYXRlIH0gfTsKCiAgdG90YWwubWF4ID0gY29weVtjb3B5Lmxlbmd0aCAtIDFdLmNvbHVtbjsKICB0b3RhbC5taW4gPSBjb3B5WzBdLmNvbHVtbjsKCiAgY29uc3QgdG90YWxOYU5JbmZvID0gewogICAgaGFzTmFOOiBjb3B5LnNvbWUoKGl0ZW0pID0+IHsKICAgICAgaWYgKGl0ZW0uY29sdW1uVHlwZSAhPT0gInN0YXR1cyIgJiYgaXNOYU4oaXRlbS5jb2x1bW4pKSB7CiAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgIH0KICAgICAgcmV0dXJuIGZhbHNlOwogICAgfSksCiAgfTsKCiAgLy8gQnVja2V0IHNldHVwIHdpdGggc3VtIGFuZCBtaW4vbWF4CiAgZm9yIChjb25zdCBpdGVtIG9mIGNvcHkpIHsKICAgIGNvbnN0IGtleSA9IGAke2l0ZW0uY2F0ZWdvcnlUeXBlfV8ke2l0ZW0ucmVzdWx0VHlwZX1gOwogICAgY29uc3QgdG90YWxLZXkgPSBgJHtpdGVtLmNhdGVnb3J5VHlwZX1gOwogICAgY29uc3QgeyBjb2x1bW5UeXBlOiB0eXBlLCBjb2x1bW4sIGNvbHVtblRpdGxlOiB0aXRsZSB9ID0gaXRlbTsKICAgIGlmICghdG90YWwudGl0bGUpIHsKICAgICAgdG90YWwudGl0bGUgPSB0aXRsZTsKICAgIH0KICAgIGNvbnN0IGJ1Y2tldCA9IGJ1Y2tldHNba2V5XSB8fCB7CiAgICAgIC4uLmRlZmF1bHRPYmosCiAgICAgIHRpdGxlLAogICAgICBpdGVtczogW10sCiAgICAgIG1ldGE6IHsgLi4ubWV0YVRlbXBsYXRlIH0sCiAgICB9OwoKICAgIGNvbnN0IHN1YlRvdGFsQnVja2V0ID0gYnVja2V0c1t0b3RhbEtleV0gfHwgewogICAgICAuLi5kZWZhdWx0T2JqLAogICAgICB0aXRsZSwKICAgICAgaXRlbXM6IFtdLAogICAgICBtZXRhOiB7IC4uLm1ldGFUZW1wbGF0ZSB9LAogICAgfTsKCiAgICBjb25zdCBpdGVtSXNOYU4gPSB0eXBlICE9PSAic3RhdHVzIiAmJiBpc05hTihjb2x1bW4pOwoKICAgIC8vIGlmIG9uZSBpdGVtIGlzIE5hTiB3ZSBzdG9yZSB0aGF0IGluZm8gc28gd2UgY2FuIGRlZmF1bHQgYWxsCiAgICAvLyBjYWxjdWxhdGVkIHZhbHVlcyBmb3IgdGhpcyBidWNrZXQgdG8gTmFOCiAgICBpZiAoaXRlbUlzTmFOKSB7CiAgICAgIGJ1Y2tldE5hTkluZm9ba2V5XSA9IHsgaGFzTmFOOiB0cnVlIH07CiAgICAgIGJ1Y2tldE5hTkluZm9bdG90YWxLZXldID0geyBoYXNOYU46IHRydWUgfTsKCiAgICAgIC8vIHNldCBhbGwgdmFsdWVzIGZvciB0aGlzIGJ1Y2tldCB0byBOYU4KICAgICAgYnVja2V0c1trZXldID0geyAuLi5uYW5PYmosIHRpdGxlIH07CiAgICAgIGJ1Y2tldHNbdG90YWxLZXldID0geyAuLi5uYW5PYmosIHRpdGxlIH07CiAgICAgIGNvbnRpbnVlOwogICAgfQoKICAgIC8vIHdlIGNoZWNrIGlmIHdlIHNob3VsZCBza2lwIGNhbGN1bGF0aW9uIGZvciB0aGVzZSBidWNrZXRzCiAgICBjb25zdCBza2lwQnVja2V0ID0gc2hvdWxkU2tpcEJ1Y2tldChidWNrZXROYU5JbmZvLCBrZXkpOwogICAgY29uc3Qgc2tpcFN1YlRvdGFsID0gc2hvdWxkU2tpcEJ1Y2tldChidWNrZXROYU5JbmZvLCB0b3RhbEtleSk7CgogICAgaWYgKCFza2lwQnVja2V0KSB7CiAgICAgIGJ1Y2tldC5zdW0gPSBtYXliZUFkZChidWNrZXQuc3VtLCBjb2x1bW4sIHR5cGUpOwogICAgICB1cGRhdGVNYXhEZWNpbWFsTWV0YUluZm8oeyBjb2x1bW5UeXBlLCBjb2x1bW4sIGJ1Y2tldCB9KTsKICAgIH0KICAgIGlmICghc2tpcFN1YlRvdGFsKSB7CiAgICAgIHN1YlRvdGFsQnVja2V0LnN1bSA9IG1heWJlQWRkKHN1YlRvdGFsQnVja2V0LnN1bSwgY29sdW1uLCB0eXBlKTsKICAgICAgdXBkYXRlTWF4RGVjaW1hbE1ldGFJbmZvKHsgY29sdW1uVHlwZSwgY29sdW1uLCBidWNrZXQ6IHN1YlRvdGFsQnVja2V0IH0pOwogICAgfQogICAgaWYgKCF0b3RhbE5hTkluZm8uaGFzTmFOKSB7CiAgICAgIHRvdGFsLnN1bSA9IG1heWJlQWRkKHRvdGFsLnN1bSwgY29sdW1uLCB0eXBlKTsKICAgICAgdXBkYXRlTWF4RGVjaW1hbE1ldGFJbmZvKHsgY29sdW1uVHlwZSwgY29sdW1uLCBidWNrZXQ6IHRvdGFsIH0pOwogICAgfQoKICAgIGlmICghaXNOYU4oTnVtYmVyKGNvbHVtbikpKSB7CiAgICAgIGlmICghc2tpcEJ1Y2tldCkgewogICAgICAgIGJ1Y2tldC5tYXggPSBtYXRoU3RyaW5nTWF4KGJ1Y2tldC5tYXgsIGNvbHVtbik7CiAgICAgICAgYnVja2V0Lm1pbiA9IG1hdGhTdHJpbmdNaW4oYnVja2V0Lm1pbiwgY29sdW1uKTsKICAgICAgfQogICAgICBpZiAoIXNraXBTdWJUb3RhbCkgewogICAgICAgIHN1YlRvdGFsQnVja2V0Lm1heCA9IG1hdGhTdHJpbmdNYXgoc3ViVG90YWxCdWNrZXQubWF4LCBjb2x1bW4pOwogICAgICAgIHN1YlRvdGFsQnVja2V0Lm1pbiA9IG1hdGhTdHJpbmdNaW4oc3ViVG90YWxCdWNrZXQubWluLCBjb2x1bW4pOwogICAgICB9CiAgICB9CiAgICBpZiAoIXNraXBCdWNrZXQpIHsKICAgICAgdHJ5IHsKICAgICAgICBidWNrZXQuaXRlbXMucHVzaChpdGVtKTsKICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgIGNvbnNvbGUuZSh7IGJ1Y2tldCwgYnVja2V0TWV0YTogYnVja2V0TmFOSW5mbywga2V5IH0pOwogICAgICB9CiAgICB9CiAgICBpZiAoIXNraXBTdWJUb3RhbCkgewogICAgICB0cnkgewogICAgICAgIHN1YlRvdGFsQnVja2V0Lml0ZW1zLnB1c2goaXRlbSk7CiAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICBjb25zb2xlLmUoeyBzdWJUb3RhbEJ1Y2tldCwgYnVja2V0TWV0YTogYnVja2V0TmFOSW5mbywgdG90YWxLZXkgfSk7CiAgICAgIH0KICAgIH0KCiAgICBidWNrZXRzW2tleV0gPSBidWNrZXQ7CiAgICBidWNrZXRzW3RvdGFsS2V5XSA9IHN1YlRvdGFsQnVja2V0OwogIH0KCiAgZm9yIChjb25zdCBbYnVja2V0LCB2YWx1ZXNdIG9mIE9iamVjdC5lbnRyaWVzKGJ1Y2tldHMpKSB7CiAgICBpZiAoc2hvdWxkU2tpcEJ1Y2tldChidWNrZXROYU5JbmZvLCBidWNrZXQpKSB7CiAgICAgIGNvbnRpbnVlOwogICAgfQogICAgY2FsY3VsYXRlTWVhbih2YWx1ZXMsIHZhbHVlcy5pdGVtcyk7CgogICAgY2FsY3VsYXRlTWVkaWFuKHZhbHVlcywgdmFsdWVzLml0ZW1zKTsKICAgIGJ1Y2tldHNbYnVja2V0XSA9IHZhbHVlczsKICB9CiAgY29uc3QgdG90YWxIYXNOYU4gPSB0b3RhbE5hTkluZm8uaGFzTmFOOwoKICBpZiAodG90YWxIYXNOYU4pIHsKICAgIHRvdGFsID0geyAuLi50b3RhbCwgLi4ubmFuT2JqIH07CiAgfSBlbHNlIHsKICAgIGNhbGN1bGF0ZU1lYW4odG90YWwsIGNvcHkpOwogICAgY2FsY3VsYXRlTWVkaWFuKHRvdGFsLCBjb3B5KTsKICB9CgogIGZvciAoY29uc3QgaXRlbSBvZiBjb3B5KSB7CiAgICBjb25zdCB7IGNvbHVtbiB9ID0gaXRlbTsKICAgIGlmIChpc05hTihOdW1iZXIoY29sdW1uKSkpIHsKICAgICAgY29udGludWU7CiAgICB9CiAgICBjb25zdCBudW1Db2wgPSBOdW1iZXIoY29sdW1uKTsKICAgIGNvbnN0IGtleSA9IGAke2l0ZW0uY2F0ZWdvcnlUeXBlfV8ke2l0ZW0ucmVzdWx0VHlwZX1gOwogICAgY29uc3QgdG90YWxLZXkgPSBgJHtpdGVtLmNhdGVnb3J5VHlwZX1gOwogICAgY29uc3QgYnVja2V0ID0gYnVja2V0c1trZXldOwogICAgY29uc3Qgc3ViVG90YWxCdWNrZXQgPSBidWNrZXRzW3RvdGFsS2V5XTsKICAgIGNvbnN0IGRpZmZCdWNrZXQgPSBudW1Db2wgLSBidWNrZXQuYXZnOwogICAgY29uc3QgZGlmZlN1YlRvdGFsID0gbnVtQ29sIC0gc3ViVG90YWxCdWNrZXQuYXZnOwogICAgY29uc3QgZGlmZlRvdGFsID0gbnVtQ29sIC0gdG90YWwuYXZnOwogICAgdG90YWwudmFyaWFuY2UgKz0gTWF0aC5wb3coZGlmZlRvdGFsLCAyKTsKICAgIGJ1Y2tldC52YXJpYW5jZSArPSBNYXRoLnBvdyhkaWZmQnVja2V0LCAyKTsKICAgIHN1YlRvdGFsQnVja2V0LnZhcmlhbmNlICs9IE1hdGgucG93KGRpZmZTdWJUb3RhbCwgMik7CiAgfQoKICBjb25zdCB0b3RhbEhhc05lZ0luZiA9IE51bWJlcih0b3RhbC5taW4pID09PSAtSW5maW5pdHk7CiAgY29uc3QgdG90YWxIYXNQb3NJbmYgPSBOdW1iZXIodG90YWwubWF4KSA9PT0gSW5maW5pdHk7CiAgdG90YWwuc3RkZXYgPSBjYWxjdWxhdGVTdGRldigKICAgIHRvdGFsSGFzTmVnSW5mLAogICAgdG90YWxIYXNQb3NJbmYsCiAgICB0b3RhbC52YXJpYW5jZSwKICAgIGNvcHkubGVuZ3RoLAogICk7CgogIGZvciAoY29uc3QgW2J1Y2tldCwgdmFsdWVzXSBvZiBPYmplY3QuZW50cmllcyhidWNrZXRzKSkgewogICAgaWYgKHNob3VsZFNraXBCdWNrZXQoYnVja2V0TmFOSW5mbywgYnVja2V0KSkgewogICAgICBmb3IgKGNvbnN0IFtrZXksIHZhbF0gb2YgT2JqZWN0LmVudHJpZXModmFsdWVzKSkgewogICAgICAgIHZhbHVlc1trZXldID0gdmFsLnRvU3RyaW5nKCk7CiAgICAgIH0KICAgICAgYnVja2V0c1tidWNrZXRdID0gdmFsdWVzOwogICAgICBjb250aW51ZTsKICAgIH0KICAgIGNvbnN0IHZhbHVlc0hhdmVOZWdJbmYgPSBOdW1iZXIodmFsdWVzLm1pbikgPT09IC1JbmZpbml0eTsKICAgIGNvbnN0IHZhbHVlc0hhdmVQb3NJbmYgPSBOdW1iZXIodG90YWwubWF4KSA9PT0gSW5maW5pdHk7CiAgICB2YWx1ZXMuc3RkZXYgPSBjYWxjdWxhdGVTdGRldigKICAgICAgdmFsdWVzSGF2ZU5lZ0luZiwKICAgICAgdmFsdWVzSGF2ZVBvc0luZiwKICAgICAgdmFsdWVzLnZhcmlhbmNlLAogICAgICB2YWx1ZXMuaXRlbXMubGVuZ3RoLAogICAgKTsKCiAgICBmb3IgKGNvbnN0IFtrZXksIHZhbF0gb2YgT2JqZWN0LmVudHJpZXModmFsdWVzKSkgewogICAgICBpZiAoa2V5ID09PSAibWV0YSIpIHsKICAgICAgICBjb250aW51ZTsKICAgICAgfQogICAgICB2YWx1ZXNba2V5XSA9IHZhbC50b1N0cmluZygpOwogICAgfQogICAgLy8gY2xlYXJpbmcgbWVtb3J5CiAgICBkZWxldGUgdmFsdWVzLml0ZW1zOwogICAgZGVsZXRlIHZhbHVlcy52YXJpYW5jZTsKICAgIGJ1Y2tldHNbYnVja2V0XSA9IHZhbHVlczsKICB9CgogIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHRvdGFsKSkgewogICAgaWYgKGtleSA9PT0gIm1ldGEiKSB7CiAgICAgIGNvbnRpbnVlOwogICAgfQogICAgdG90YWxba2V5XSA9IHZhbHVlLnRvU3RyaW5nKCk7CiAgfQoKICBkZWxldGUgdG90YWwuaXRlbXM7CiAgZGVsZXRlIHRvdGFsLnZhcmlhbmNlOwoKICBjb25zdCByZXN1bHQgPSB7IGNvbHVtblR5cGUsIHRvdGFsLCAuLi5idWNrZXRzIH07CiAgcG9zdFJlc3VsdChyZXN1bHQsIHRyYW5zYWN0aW9uKTsKfTsKCmNvbnN0IHBvc3RSZXN1bHQgPSAocmVzdWx0LCB0cmFuc2FjdGlvbikgPT4gewogIC8vIGhhbmRsaW5nIGluIHRlc3RzCiAgaWYgKHRoaXMubW9ja2VkUG9zdE1lc3NhZ2UpIHsKICAgIHRoaXMubW9ja2VkUG9zdE1lc3NhZ2UoeyByZXN1bHQsIHRyYW5zYWN0aW9uIH0pOwogICAgcmV0dXJuOwogIH0KICBwb3N0TWVzc2FnZSh7IHJlc3VsdCwgdHJhbnNhY3Rpb24gfSk7Cn07Cg==",poolSize:8,name:"stats"}].map((function(e){for(var t=e.template,n=e.poolSize,i=e.name,r=[],s=function(e){var n=new Worker(t),i={worker:n,busy:!1};n.onmessage=function(e){return function(e,t){var n=e.data,i=n.transaction,r=n.result,s=Ne[i];t.busy=!1,s(r),delete Ne[i]}(e,i)},r.push(i)},l=0;l<n;l+=1)s();return{name:i,pool:r}})).reduce((function(e,t){var n=t.name,i=t.pool;return(0,c.Z)((0,c.Z)({},e),{},(0,p.Z)({},n,i))}),{}),we=function e(){var t=We.shift();if(t){var n=function(e){var t=Ge[e].filter((function(e){return!e.busy}))[0];return t?t.busy?null:(t.busy=!0,t):null}(t.name);if(!n)return We.unshift(t),void setImmediate(e);var i=Be;Be+=1;var r={data:t.data,transaction:i};Ne[i]=t.callback,n.worker.postMessage(r),setImmediate(e)}},Ye=function(){var e=(0,Fe.Z)((0,Ae.Z)().mark((function e(t){var n,i;return(0,Ae.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=t.name,i=t.data,e.abrupt("return",new Promise((function(e){We.push({name:n,data:i,callback:e}),setImmediate(we)})));case 2:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),Se=["columnType"],ke=["meta"],Ve={total:{title:"all results"},correct:{indent:1,title:"correct results",description:"(property holds + result is true) OR (property does not hold + result is false)"},correct_true:{indent:2,title:"correct true",description:"property holds + result is true"},correct_false:{indent:2,title:"correct false",description:"property does not hold + result is false"},correct_unconfirmed:{indent:1,title:"correct-unconfirmed results",description:"(property holds + result is true) OR (property does not hold + result is false), but unconfirmed"},correct_unconfirmed_true:{indent:2,title:"correct-unconfirmed true",description:"property holds + result is true, but unconfirmed"},correct_unconfirmed_false:{indent:2,title:"correct-unconfirmed false",description:"property does not hold + result is false, but unconfirmed"},wrong:{indent:1,title:"incorrect results",description:"(property holds + result is false) OR (property does not hold + result is true)"},wrong_true:{indent:2,title:"incorrect true",description:"property does not hold + result is true"},wrong_false:{indent:2,title:"incorrect false",description:"property holds + result is false"}},Re=function(e){return e.filter((function(e){return Ve[e.id]}))},He=function(){var e=(0,Fe.Z)((0,Ae.Z)().mark((function e(t){var n,i,r,s,l,a,o;return(0,Ae.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=t.tools,i=t.tableData,r=t.stats,s=Te(n),e.next=4,Pe({tools:n,tableData:i,formatter:s});case 4:return l=e.sent,a=r.map((function(e){return e.id})).filter((function(e){return Ve[e]})),o=Ke(l,s,a),l=o.map((function(e,t){var i,r=[],s=n[t].columns,l=0,a=s[l],o=(0,f.Z)(e);try{for(o.s();!(i=o.n()).done;){for(var c=i.value,u=c.title;l<s.length&&u!==a.title;)r.push({}),a=s[++l];if(l>=s.length)break;r.push(c),a=s[++l]}}catch(d){o.e(d)}finally{o.f()}return r})),e.abrupt("return",Re(r).map((function(e){var t=e.content.map((function(t,n){return l[n].map((function(t){return t[e.id]}))}));return(0,c.Z)((0,c.Z)({},e),{},{content:t})})));case 9:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),Te=function(e){return e.map((function(e,t){return e.columns.map((function(e,n){var i=e.number_of_significant_digits;return new ee(i,"".concat(t,"-").concat(n))}))}))},Xe=function(e,t,n){return function(n,i){var r=i.significantDigits,s=Number(n),l=n.split("."),a=(0,d.Z)(l,2),o=a[0],c=a[1];if(["sum","avg","stdev"].includes(e)){var u,h;if(B(r)&&"sum"!==e)return s.toFixed(2);var g=o.replace(/^0+/,""),f=c||"";""===g&&(f=f.replace(/^0+/,""));var p=t-(null!==(u=null===c||void 0===c?void 0:c.length)&&void 0!==u?u:0),m=r-(g.length+f.length),v=m>0,I=(null!==(h=null===c||void 0===c?void 0:c.length)&&void 0!==h?h:0)+m;if(p>0&&v&&"stdev"!==e)return p>m?s.toFixed(I):s.toFixed(t);if("avg"===e&&!v&&p<0&&"0"===n[n.length-1])return s.toFixed(t);if("stdev"===e&&v)return s.toFixed(I)}return n}},Ke=function(e,t,n){var i=e.map((function(e,i){return e.map((function(e,r){var s,l={columnType:e.columnType},a=(0,f.Z)(n);try{for(a.s();!(s=a.n()).done;){var o,c=s.value,u=e[c];u&&(l[c]=u,null!==(o=null===u||void 0===u?void 0:u.sum)&&void 0!==o&&o&&t[i][r].addDataItem(u.sum))}}catch(d){a.e(d)}finally{a.f()}return l}))}));for(var r in t)for(var s in t[r])t[r][s]=t[r][s].build();return i.map((function(e,n){return e.map((function(e,i){e.columnType;var r=(0,I.Z)(e,Se),s={};if(void 0!==r.total){for(var l=0,a=Object.entries(r);l<a.length;l++){for(var o=(0,d.Z)(a[l],2),c=o[0],u=o[1],h={},g=null===u||void 0===u?void 0:u.meta,f=0,p=Object.entries(u);f<p.length;f++){var m,v=(0,d.Z)(p[f],2),b=v[0],C=v[1];if(!ke.includes(b)){var x=null!==(m=null===g||void 0===g?void 0:g.maxDecimals)&&void 0!==m?m:0;if("title"!==b){if(!B(C)&&(!isNaN(C)||"NaN"===C)&&t[n][i])try{h[b]="sum"===b?t[n][i](C,{leadingZero:!1,whitespaceFormat:!0,html:!0,additionalFormatting:Xe(b,x)}):t[n][i](C,{leadingZero:!0,whitespaceFormat:!1,html:!1,additionalFormatting:Xe(b,x)})}catch(y){console.error({key:b,value:C,formatter:t[n][i],e:y})}}else s.title=C}}s[c]=h}return s}})).filter((function(e){return!B(e)}))}))},Le="false",Oe="false",Ue="other",De=function(e,t,n,i,r){return e.map((function(e){var r,s=n(t,e),l=i(t,e);return{categoryType:s.replace(/-/g,"_"),resultType:B(r=l)?Ue:"true"===r?"true":r===Le||r.startsWith("".concat(Le,"("))&&r.endsWith(")")?Oe:Ue,row:e.results[t].values}}))},Ee=function(e){return function(t,n){var i,r=[],s=(0,f.Z)(t);try{for(s.s();!(i=s.n()).done;){var l=i.value,a=l.row,o=l.categoryType,c=l.resultType;for(var u in a){var d=a[u].raw,h=r[u]||[],g=e[n].columns[u],p=g.type,m=g.title;h.push({categoryType:o,resultType:c,column:d,columnType:p,columnTitle:m}),r[u]=h}}}catch(v){s.e(v)}finally{s.f()}return r}},Pe=function(){var e=(0,Fe.Z)((0,Ae.Z)().mark((function e(t){var n,i,r,s,l,a,o,c,u,d,h,g,f,p,m,v,I;return(0,Ae.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:for(o in n=t.tools,i=t.tableData,t.formatter,r=function(e,t){return t.results[e].category},s=function(e,t){return t.results[e].values[0].raw},l=[],a=[],n)a.push(De(i,o,r,s));for(d in c=Ee(n),u=a.map(c))u[d]=u[d].filter((function(e){return!B(e)}));for(h in u){for(p in g=u[h],f=[],g)m=g[p],f.push(Ye({name:"stats",data:m}));l[h]=f}return v=l.map((function(e){return Promise.all(e)})),e.next=13,Promise.all(v);case 13:return I=e.sent,e.abrupt("return",I);case 15:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),Me=.15*window.innerWidth,Je=function(e){return Object.keys(e).filter((function(t){return e[t]&&"sum"!==t})).map((function(t){return"".concat(t,": ").concat(e[t])})).join(", ")||void 0},ze=function(e){var t=e.selectColumn,n=e.tools,r=e.switchToQuantile,s=e.hiddenCols,l=e.tableData,a=e.onStatsReady,o=e.stats,u=e.filtered,h=void 0!==u&&u,g=(0,i.useState)(h?[]:o),f=(0,d.Z)(g,2),p=f[0],I=f[1],b=(0,i.useState)(!0),C=(0,d.Z)(b,2),x=C[0],y=C[1];(0,i.useEffect)((function(){var e=function(){var e=(0,Fe.Z)((0,Ae.Z)().mark((function e(){var t;return(0,Ae.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!h){e.next=7;break}return e.next=3,He({tools:n,tableData:l,stats:o});case 3:t=e.sent,I(t),e.next=8;break;case 7:I(o);case 8:a&&a();case 9:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}();e()}),[n,l,a,false,o,h]);var Z=function(e){return(0,j.jsx)("div",{className:"table-header",children:e.map((function(e){return(0,j.jsx)("div",(0,c.Z)((0,c.Z)({className:"tr headergroup"},e.getHeaderGroupProps()),{},{children:e.headers.map((function(e){return(0,j.jsxs)("div",(0,c.Z)((0,c.Z)({},e.getHeaderProps({className:"th header ".concat(e.headers?"outer ":"").concat(e.className||"")})),{},{children:[e.render("Header"),(!e.className||!e.className.includes("separator"))&&(0,j.jsx)("div",(0,c.Z)((0,c.Z)({},e.getResizerProps()),{},{className:"resizer ".concat(e.isResizing?"isResizing":"")}))]}))}))}))}))})},A=function(e){return(0,j.jsx)("div",(0,c.Z)((0,c.Z)({},Y()),{},{className:"table-body body",children:e.map((function(e){return R(e),(0,j.jsx)("div",(0,c.Z)((0,c.Z)({},e.getRowProps()),{},{className:"tr",children:e.cells.map((function(e){return(0,j.jsx)("div",(0,c.Z)((0,c.Z)({},e.getCellProps({className:"td "+(e.column.className||"")})),{},{children:e.render("Cell")}))}))}))}))}))},F=(0,i.useMemo)((function(){var e=n.map((function(e,t){return pe(e,t,function(e){var t=e.switchToQuantile,n=e.hiddenCols;return function(e,i,r){return{id:"".concat(e,"_").concat(i.display_title,"_").concat(r),Header:(0,j.jsx)(de,{column:i,className:"header-data clickable",title:"Show Quantile Plot of this column",onClick:function(e){return t(i)}}),hidden:n[e].includes(i.colIdx)||!(N(i)||"status"===i.type),width:k(i,null,"status"===i.type?6:null),minWidth:30,accessor:function(t){return t.content[e][r]},Cell:function(e){var t,n=null===(t=e.value)||void 0===t?void 0:t.sum;return"status"===i.type&&(n=void 0===e.value?0:null===e.value?null:Number.isInteger(Number(e.value.sum))?Number(e.value.sum):e.value.sum),B(n)?(0,j.jsx)("div",{className:"cell",children:"-"}):(0,j.jsx)("div",{dangerouslySetInnerHTML:{__html:n},className:"cell",title:"status"!==i.type?Je(e.value):void 0})}}}}({switchToQuantile:r,hiddenCols:s}))})).flat();return[{Header:function(){return(0,j.jsx)("form",{children:(0,j.jsxs)("label",{title:"Fix the first column",children:["Fixed row title:",(0,j.jsx)("input",{id:"fixed-row-title",name:"fixed",type:"checkbox",checked:x,onChange:function(e){var t=e.target;return y(t.checked)}})]})})},id:"row-title",sticky:x?"left":"",width:Me,minWidth:100,columns:[{id:"summary",width:Me,minWidth:100,Header:(0,j.jsx)(ue,{handler:t}),Cell:function(e){return(0,j.jsx)("div",{dangerouslySetInnerHTML:{__html:(e.row.original.title||"&nbsp;".repeat(4*Ve[e.row.original.id].indent)+Ve[e.row.original.id].title)+(h?" of selected rows":"")},title:e.row.original.description||Ve[e.row.original.id].description,className:"row-title"})}}]}].concat(e)}),[h,x,r,s,t,n]),W=(0,i.useMemo)((function(){return p}),[p]),G=(0,m.useTable)({columns:F,data:W,initialState:{hiddenColumns:se(F)}},m.useFilters,m.useResizeColumns,m.useFlexLayout,v.useSticky),w=G.getTableProps,Y=G.getTableBodyProps,S=G.headerGroups,V=G.rows,R=G.prepareRow;return(0,j.jsxs)("div",{id:"statistics",children:[(0,j.jsx)("h2",{children:"Statistics"}),function(e,t){return h&&0===p.length?(0,j.jsx)("p",{id:"statistics-placeholder",children:"Please wait while the statistics are being calculated."}):(0,j.jsx)("div",{id:"statistics-table",children:(0,j.jsx)("div",{className:"table sticky",children:(0,j.jsx)("div",{className:"table-content",children:(0,j.jsxs)("div",(0,c.Z)((0,c.Z)({className:"table-container"},w()),{},{children:[Z(e),A(t)]}))})})})}(S,V)]})},_e=["displayName","tool","limit","host","os","system","date","runset","branch","options","property"],Qe=function(e){var t=function(e){return e.split(/[\s]+-/).map((function(e,t){return(0,j.jsx)("li",{children:(0,j.jsx)("code",{children:0===t?e:"-".concat(e)})},e)}))},n=function(e,t){return e?(0,j.jsx)("a",{href:e,target:"_blank",rel:"noopener noreferrer",children:t}):t},i=function(e){var t=e.tool,i=e.version,r=e.project_url,s=e.version_url;return(0,j.jsxs)(j.Fragment,{children:[n(r,t)," ",n(s,i)]})};return(0,j.jsxs)("div",{id:"summary",children:[(0,j.jsxs)("div",{id:"benchmark_setup",children:[(0,j.jsx)("h2",{children:"Benchmark Setup"}),(0,j.jsx)("table",{children:(0,j.jsx)("tbody",{children:_e.map((function(t){return e.tableHeader[t]})).filter((function(e){return null!==e})).map((function(e){return(0,j.jsxs)("tr",{className:e.id,children:[(0,j.jsx)("th",{children:e.name},"td-"+e.id),e.content.map((function(n,r){return function(e,n,r,s){var l="options"===e,a="tool"===e;return(0,j.jsx)("td",{colSpan:r,className:"header__tool-row".concat(l&&" options"),children:l?(0,j.jsx)("ul",{children:t(n)}):a?i(n):n},n+s)}(e.id,n[0],n[1],r)}))]},"tr-"+e.id)}))})})]}),(0,j.jsx)(ze,{selectColumn:e.selectColumn,tools:e.tools,switchToQuantile:e.switchToQuantile,hiddenCols:e.hiddenCols,tableData:e.tableData,onStatsReady:e.onStatsReady,stats:e.stats,filtered:e.filtered}),(0,j.jsxs)("p",{children:["Generated by"," ",(0,j.jsxs)("a",{className:"link",href:"https://github.com/sosy-lab/benchexec",target:"_blank",rel:"noopener noreferrer",children:[" ","BenchExec ",e.version]})]})]})},qe=n(4463),$e=function(e){(0,a.Z)(n,e);var t=(0,o.Z)(n);function n(){var e;(0,s.Z)(this,n);for(var i=arguments.length,r=new Array(i),l=0;l<i;l++)r[l]=arguments[l];return(e=t.call.apply(t,[this].concat(r))).knownLicenses=["BSD-3-Clause","CC-BY-4.0","ISC","MIT","Zlib"],e.linkifyLicense=function(e){return(0,j.jsx)("a",{href:"https://spdx.org/licenses/"+e,target:"_blank",rel:"noopener noreferrer",children:e},e)},e.linkifyLicenses=function(t){return t.split(/([A-Za-z0-9.-]+)/).map((function(t){return e.knownLicenses.includes(t)?e.linkifyLicense(t):t}))},e.render=function(){return(0,j.jsxs)("div",{children:[(0,j.jsx)("h4",{children:(0,j.jsxs)("a",{href:"https://www.npmjs.com/package/"+e.props.name+"/v/"+e.props.version,target:"_blank",rel:"noopener noreferrer",children:[e.props.name," ",e.props.version]})}),e.props.repository&&(0,j.jsxs)(j.Fragment,{children:["Source:"," ",(0,j.jsx)("a",{href:e.props.repository,target:"_blank",rel:"noopener noreferrer",children:e.props.repository}),(0,j.jsx)("br",{})]}),e.props.copyright&&(0,j.jsxs)(j.Fragment,{children:[e.props.copyright,(0,j.jsx)("br",{})]}),"License: ",(0,j.jsx)(j.Fragment,{children:e.linkifyLicenses(e.props.licenses)}),void 0!==e.props.licenseId&&(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)("br",{}),(0,j.jsxs)("details",{children:[(0,j.jsx)("summary",{children:"Full text of license"}),(0,j.jsx)("pre",{children:qe.licenses[e.props.licenseId]})]})]})]})},e}return(0,l.Z)(n)}(i.Component),et=function(e){return(0,j.jsxs)("div",{className:"info",children:[(0,j.jsx)("div",{className:"info-header",children:(0,j.jsx)("h1",{children:"Info and Help"})}),(0,j.jsx)("h3",{children:"Summary"}),(0,j.jsxs)("ul",{children:[(0,j.jsx)("li",{children:"Shows environment information and a summary of the results."}),(0,j.jsxs)("li",{children:[(0,j.jsx)("strong",{children:"Select columns:"})," ",(0,j.jsx)("br",{})," The columns to show can be selected by clicking on ",(0,j.jsx)("em",{children:"Click here to select columns"})," or"," ",(0,j.jsx)("span",{className:"link",onClick:e.selectColumn,children:"here"}),"."]}),(0,j.jsxs)("li",{children:[(0,j.jsx)("strong",{children:"Quantile plot:"})," ",(0,j.jsx)("br",{}),"A quantile plot for a column can be shown by clicking on the respective column header (e.g.,"," ",(0,j.jsx)("em",{children:"cputime"}),")."]}),(0,j.jsxs)("li",{children:[(0,j.jsx)("strong",{children:"Fixed row title:"})," ",(0,j.jsx)("br",{}),"Deselect to let the left-most column scroll together with the rest of the table."]})]}),(0,j.jsx)("h3",{children:"Table"}),(0,j.jsxs)("ul",{children:[(0,j.jsx)("li",{children:"Shows the detailed results."}),(0,j.jsxs)("li",{children:[(0,j.jsx)("strong",{children:"Fixed task:"})," ",(0,j.jsx)("br",{}),"Deselect to let the left-most column with the task name scroll together with the rest of the table."]}),(0,j.jsxs)("li",{children:[(0,j.jsx)("strong",{children:"Select columns:"})," ",(0,j.jsx)("br",{})," The columns to show can be selected by clicking on ",(0,j.jsx)("em",{children:"Click here to select columns"})," or"," ",(0,j.jsx)("span",{className:"link",onClick:e.selectColumn,children:"here"}),"."]}),(0,j.jsxs)("li",{children:[(0,j.jsx)("strong",{children:"Filter rows:"})," ",(0,j.jsx)("br",{}),"Filters can be applied to every column in the row below the column header. Numeric columns accept a range filter like ",(0,j.jsx)("em",{children:"min:max"}),", where both ",(0,j.jsx)("em",{children:"min"})," and ",(0,j.jsx)("em",{children:"max"})," are numeric values that can also be omitted for half-open ranges. For text columns (like the task name) any row matches that contains the entered filter value. Several filters can be combined and will be applied together. All filters can be deleted at once with the ",(0,j.jsx)("em",{children:"Reset Filters"})," button in the top right corner."]}),(0,j.jsxs)("li",{children:[(0,j.jsx)("strong",{children:"Sort rows:"})," ",(0,j.jsx)("br",{})," Rows can be sorted by clicking on the column header. Clicking again will toggle the sort order (ascending vs. descending). Hold ",(0,j.jsx)("kbd",{children:"Shift"})," while clicking for adding a column to the sort order."]}),(0,j.jsxs)("li",{children:[(0,j.jsx)("strong",{children:"Tool output:"})," ",(0,j.jsx)("br",{}),"Clicking on a cell in the status column will show the tool output of this run."]}),(0,j.jsxs)("li",{children:[(0,j.jsx)("strong",{children:"Task definition:"})," ",(0,j.jsx)("br",{})," Clicking on the task name will show the content of the respective file."]})]}),(0,j.jsx)("h3",{children:" Quantile Plot and Scatter Plot"}),(0,j.jsxs)("ul",{children:[(0,j.jsx)("li",{children:"Shows plots of the results that are currently visible in the table."}),(0,j.jsxs)("li",{children:[(0,j.jsx)("strong",{children:"Correct results only:"})," ",(0,j.jsx)("br",{}),"In addition to the currently applied filter, the plots by default show only correct results. Click ",(0,j.jsx)("em",{children:"Switch to All Results"})," to toggle this behavior."]}),(0,j.jsxs)("li",{children:[(0,j.jsx)("strong",{children:"Select columns:"}),(0,j.jsx)("br",{}),"The drop-down fields above the plots allow to choose which columns are shown in the plot."]})]}),(0,j.jsx)("h3",{children:"About"}),(0,j.jsxs)("p",{children:["This table was generated by"," ",(0,j.jsxs)("a",{className:"link",href:"https://github.com/sosy-lab/benchexec",target:"_blank",rel:"noopener noreferrer",children:["BenchExec ",e.version]}),". For feedback, questions, and bug reports please use our"," ",(0,j.jsx)("a",{className:"link",href:"https://github.com/sosy-lab/benchexec/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc+label%3A%22HTML+table%22",target:"_blank",rel:"noopener noreferrer",children:"issue tracker"}),"."]}),(0,j.jsxs)("p",{children:["License:"," ",(0,j.jsx)("a",{className:"link",href:"https://www.apache.org/licenses/LICENSE-2.0",target:"_blank",rel:"noopener noreferrer",children:"Apache 2.0 License"})]}),(0,j.jsxs)("details",{children:[(0,j.jsx)("summary",{children:"This application includes third-party dependencies under different licenses. Click here to view them."}),qe.dependencies.map((function(e){return(0,j.jsx)($e,(0,c.Z)({},e),e.name+e.version)}))]})]})},tt=n(9284),nt=n.n(tt),it=n(935),rt=function(e){(0,a.Z)(n,e);var t=(0,o.Z)(n);function n(e){var i;(0,s.Z)(this,n),(i=t.call(this,e)).renderTools=function(){return i.props.tools.map((function(e){var t=e.toolIdx,n=i.state.hiddenCols[t].length!==e.columns.length,r=H(e);return(0,j.jsxs)("tr",{id:r,children:[(0,j.jsx)("td",{id:r,className:n?"checked":"",children:(0,j.jsxs)("label",{children:[r,(0,j.jsx)("input",{name:r+"--"+t,type:"checkbox",checked:n,onChange:function(e){return i.toggleToolHidden(t,e)}})]})}),i.renderToolColumns(t)]},"tr"+r+t)}))},i.renderToolColumns=function(e){var t=i.props.tools.find((function(t){return t.toolIdx===e}));return i.state.selectableCols.map((function(n){if(t.columns.some((function(e){return e.display_title===n}))){var r=!t.columns.filter((function(e){return e.display_title===n})).map((function(e){return e.colIdx})).some((function(t){return i.state.hiddenCols[e].includes(t)}));return(0,j.jsx)("td",{id:"td"+e+n,className:r?"checked":"",children:(0,j.jsxs)("label",{children:[n,(0,j.jsx)("input",{id:e+"--"+n,name:e+"--"+n,type:"checkbox",checked:r,onChange:function(t){return i.toggleToolColHidden(e,n,t)}})]})},n)}return(0,j.jsx)("td",{},n)}))},i.renderColumnHeaders=function(){return i.state.selectableCols.map((function(e){var t=Object.values(i.state.hiddenCols).some((function(t,n){var r=i.props.tools.find((function(e){return e.toolIdx===n}));return!r.columns.filter((function(t){return t.display_title===e})).map((function(e){return e.colIdx})).some((function(e){return t.includes(e)}))&&r.columns.some((function(t){return t.display_title===e}))}));return(0,j.jsx)("th",{id:"td-all-"+e,className:t?"checked":"",children:(0,j.jsxs)("label",{children:[e,(0,j.jsx)("input",{name:e,type:"checkbox",checked:t,onChange:function(t){return i.toggleWholeColHidden(e,t)}})]})},"key"+e)}))},i.toggleAllColsHidden=function(){var e={};i.props.tools.forEach((function(t){return e[t.toolIdx]=[]})),i.state.isButtonOnDeselect&&i.props.tools.forEach((function(t){e[t.toolIdx]=t.columns.map((function(e){return e.colIdx}))})),i.setState((function(t){return{isButtonOnDeselect:!t.isButtonOnDeselect,hiddenCols:e}}))},i.toggleToolHidden=function(e,t){var n=t.target,r=("checkbox"===n.type?n.checked:n.value)?[]:i.props.tools.find((function(t){return t.toolIdx===e})).columns.map((function(e){return e.colIdx}));i.setHiddenColsForTool(e,r)},i.toggleToolColHidden=function(e,t,n){var r=n.target,s="checkbox"===r.type?r.checked:r.value,l=i.props.tools.find((function(t){return t.toolIdx===e})).columns.filter((function(e){return e.display_title===t})).map((function(e){return e.colIdx}));s?i.removeFromHiddenCols(e,l):i.addToHiddenCols(e,l)},i.toggleWholeColHidden=function(e,t){var n=t.target,r="checkbox"===n.type?n.checked:n.value;i.props.tools.forEach((function(t){var n=t.columns.filter((function(t){return t.display_title===e}));if(n.length>0){var s=n.map((function(e){return e.colIdx}));r?i.removeFromHiddenCols(t.toolIdx,s):i.addToHiddenCols(t.toolIdx,s)}}))},i.addToHiddenCols=function(e,t){var n=(0,u.Z)(new Set(i.state.hiddenCols[e].concat(t)));i.setHiddenColsForTool(e,n)},i.removeFromHiddenCols=function(e,t){var n=i.state.hiddenCols[e].filter((function(e){return!t.includes(e)}));i.setHiddenColsForTool(e,n)},i.handlePopState=function(){window.history.back()};var r=e.tools.map((function(e){return e.columns})).flat().filter((function(e,t,n){return t===n.findIndex((function(t){return t.display_title===e.display_title}))})).map((function(e){return e.display_title}));return i.state={isButtonOnDeselect:!0,hiddenCols:i.props.hiddenCols,selectableCols:r},i}return(0,l.Z)(n,[{key:"componentDidMount",value:function(){window.history.pushState({},"",""),window.addEventListener("popstate",this.props.close,!1)}},{key:"componentWillUnmount",value:function(){var e=this;window.removeEventListener("popstate",this.props.close,!1);var t={},n=[];Object.entries(this.state.hiddenCols).forEach((function(i){var r=(0,d.Z)(i,2),s=r[0],l=r[1],a=e.props.tools.find((function(e){return e.toolIdx===parseInt(s)})).columns;l.length===a.length?n.push(s):l.length>0?t["hidden"+s]=l.toString():t["hidden"+s]=null})),n.length>0?t.hidden=n.toString():t.hidden=null,K(t,{keepOthers:!0,history:this.props.history})}},{key:"setHiddenColsForTool",value:function(e,t){this.setState((function(n){return{hiddenCols:(0,c.Z)((0,c.Z)({},n.hiddenCols),{},(0,p.Z)({},e,t))}}))}},{key:"render",value:function(){var e=this;nt().setAppElement(document.getElementById("root"));var t=this.props.tools.every((function(t){return t.columns.length===e.state.hiddenCols[t.toolIdx].length}));return(0,j.jsxs)(nt(),{ariaHideApp:!1,className:"overlay",isOpen:!0,onRequestClose:function(){return e.handlePopState()},children:[(0,j.jsx)("div",{className:"link-overlay-header-container",children:(0,j.jsx)(y.G,{icon:it.YIN,onClick:function(){return e.handlePopState()},className:"closing"})}),(0,j.jsx)("h1",{children:"Select the columns to display"}),(0,j.jsx)("table",{className:"selectRows",children:(0,j.jsxs)("tbody",{children:[(0,j.jsxs)("tr",{className:"selectColumn_all",children:[(0,j.jsx)("th",{}),this.renderColumnHeaders()]}),this.renderTools()]})}),(0,j.jsxs)("div",{className:"overlay__buttons",children:[(0,j.jsx)("button",{className:"btn",onClick:this.toggleAllColsHidden,children:this.state.isButtonOnDeselect?"Deselect all":"Select all"}),(0,j.jsx)("button",{className:"btn btn-apply",onClick:function(){return e.handlePopState()},disabled:t,children:"Apply and close"}),(0,j.jsx)("input",{})]})]})}}]),n}(i.Component),st=(n(8350),n(9468)),lt=function(e,t,n,i,r,s){return(0,j.jsxs)("div",{className:"setting".concat(s?" disabled":""),title:r,children:[(0,j.jsxs)("span",{className:"setting-label".concat(r?" with-tooltip":""),children:[e,":"]}),(0,j.jsxs)("select",{className:"setting-select",name:"setting-"+e,value:s?"disabled":t,onChange:n,disabled:s,children:[Object.values(i).map((function(t){return(0,j.jsx)("option",{value:t,name:t+" "+e,children:t},t)})),s?(0,j.jsx)("option",{value:"disabled",name:"disabled",children:"\u2e3a"}):""]})]})},at=function(e,t,n,i,r){return(0,j.jsxs)("div",{className:"setting",title:r,children:[(0,j.jsxs)("span",{className:"setting-label".concat(r?" with-tooltip":""),children:[e,":"]}),(0,j.jsx)("select",{id:"setting-"+e,className:"setting-select",name:"setting-"+e,value:t,onChange:n,children:Object.entries(i).map((function(t){var n=(0,d.Z)(t,2),i=n[0],r=n[1];return(0,j.jsx)("optgroup",{label:i,children:r.map((function(t){return(0,j.jsx)("option",{value:t.value,name:t.name+" "+e,children:t.name},t.value)}))},i)}))})]})};function ot(e,t,n){var i=[1e8,1e7,1e6,1e5,1e4].find((function(e){return t>e})),r=i?i/1e3:1;return Array(Math.ceil(t/r)).fill().map((function(e,t){return t*r})).filter((function(t){return t>=e})).map((function(e){var t=n(e);return[Number.parseFloat(t[0].toPrecision(4)),Number.parseFloat(t[1].toPrecision(4))]}))}var ct=n(4391),ut=n.n(ct),dt=function(e){(0,a.Z)(n,e);var t=(0,o.Z)(n);function n(e){var i;return(0,s.Z)(this,n),(i=t.call(this,e)).refreshUrlState=function(){i.setState(i.setup())},i.checkForNumericalSelections=function(){return"ordinal"!==i.handleType(i.state.toolY,i.state.columnY)&&"ordinal"!==i.handleType(i.state.toolX,i.state.columnX)},i.renderData=function(){var e=[];i.hasInvalidLog=!1,i.state.areAllColsHidden||i.props.table.forEach((function(t){var n=t.results[i.state.toolX],r=t.results[i.state.toolY],s=n.values[i.state.columnX].raw,l=r.values[i.state.columnY].raw,a=void 0!==s&&null!==s&&void 0!==l&&null!==l,o=i.state.results===i.resultsOptions.correct;a&&(!o||o&&"correct"===n.category&&"correct"===r.category)&&(i.state.scaling===i.scalingOptions.logarithmic&&(s<=0||l<=0)?i.hasInvalidLog=!0:e.push({x:s,y:l,info:i.props.getRowName(t)}))})),i.setMinMaxValues(e),i.lineCount=e.length,i.dataArray=e;var t=i.state.regression!==i.regressionOptions.none,n=i.checkForNumericalSelections();if(t)if(0!==i.lineCount&&n){var r=e.map((function(e){return[parseFloat(e.x),parseFloat(e.y)]})),s=ut().linear(r),l=function(e,t,n,i,r){var s=function(e){return e[0]},l=function(e){return e[1]},a=function(e,t){return e+t};i=Math.floor(i),r=Math.ceil(r);var o=Math.sqrt(e.map((function(e,n){return[l(e),l(t[n])]})).map((function(e){return Math.pow(e[1]-e[0],2)})).reduce(a)/e.length),c=e.map((function(e){return s(e)})).reduce(a)/e.length,u=Math.sqrt(e.map((function(e){return Math.pow(s(e)-c,2)})).reduce(a)/e.length),d=ot(i,r,n),h=0===o||0===u?d.map((function(e){return 0})):d.map((function(t){return Number.parseFloat((1.96*o*Math.sqrt(1/e.length+Math.pow(s(t)-c,2)/((e.length-1)*Math.pow(u,2)))).toPrecision(4))}));return{upperBorderData:d.map((function(e,t){return[s(e),l(e)+h[t]]})),lowerBorderData:d.map((function(e,t){return[s(e),l(e)-h[t]]}))}}(r,s.points,s.predict,i.minX,i.maxX),a=[[i.minX,s.predict(i.minX)[1]],[i.maxX,s.predict(i.maxX)[1]]];s.points=Array.from(new Set(s.points.map(JSON.stringify)),JSON.parse).concat(a);var o=i.props.tools[i.state.toolX].columns[i.state.columnX].unit,c=i.props.tools[i.state.toolY].columns[i.state.columnY].unit,u="Estimation technique: ordinary least squares (OLS)\n                          Predictor variable (X-Axis) in ".concat(o,": ").concat(i.state.nameX,"\n                          Response variable (Y-Axis) in ").concat(c,": ").concat(i.state.nameY,"\n                          Regression coefficient: ").concat(s.equation[0],"\n                          Intercept: ").concat(s.equation[1],"\n                          Equation: ").concat(s.string,"\n                          Coefficient of Determination: ").concat(s.r2).replace(/^ +/gm,"");i.regressionData={regression:s,text:u,upperConfidenceBorderData:l.upperBorderData,lowerConfidenceBorderData:l.lowerBorderData}}else Q({regression:i.regressionOptions.none})},i.setMinMaxValues=function(e){var t=e.map((function(e){return e.x})),n=e.map((function(e){return e.y}));i.maxX=i.findMaxValue(t),i.maxY=i.findMaxValue(n),i.minX=i.findMinValue(t),i.minY=i.findMinValue(n)},i.findMaxValue=function(e){var t=Math.max.apply(Math,(0,u.Z)(e));return t<3?3:t},i.findMinValue=function(e){var t=Math.min.apply(Math,(0,u.Z)(e));return t>2?1:t},i.renderRegressionLine=function(e){var t=i.prepareRegressionLineData(e);return(0,j.jsx)(st.LU,{className:"regression-line",data:t,style:{stroke:"green"},onValueMouseOver:function(e,t){return i.setState({value:e})},onValueMouseOut:function(e,t){return i.setState({value:null})},opacity:"0"},"reg-line-"+e)},i.renderConfidenceIntervalLine=function(e,t){var n=i.prepareLineData(e);return(0,j.jsx)(st.eh,{className:"regression-line",data:n,style:{stroke:"gray"}},"conf-line-".concat(t,"-").concat(e))},i.prepareRegressionLineData=function(e){return e.sort((function(e,t){return e[0]-t[0]})).map((function(e,t){var n=Math.round(100*i.regressionData.lowerConfidenceBorderData[t][1])/100,r=Math.round(100*i.regressionData.upperConfidenceBorderData[t][1])/100;return{x:e[0],y:e[1],"95% Confidence Interval":"[".concat(n,",").concat(r,"]")}})).sort((function(e,t){return e.x-t.x}))},i.prepareLineData=function(e){return e.map((function(e){return{x:e[0],y:e[1]}})).sort((function(e,t){return e.x-t.x}))},i.handleType=function(e,t){var n=i.props.tools[e].columns[t].type;return"text"===n||"status"===n?"ordinal":i.state.scaling===i.scalingOptions.logarithmic?"log":"linear"},i.extractAxisInfoByName=function(e,t){var n,r=e.split("-"),s=(0,d.Z)(r,2),l=s[0],a=s[1];return n={},(0,p.Z)(n,"data".concat(t),e),(0,p.Z)(n,"tool".concat(t),l),(0,p.Z)(n,"column".concat(t),a),(0,p.Z)(n,"name".concat(t),i.props.tools[l].columns.find((function(e){return e.colIdx===parseInt(a)})).display_title+" ("+H(i.props.tools[l])+")"),n},i.setAxis=function(e,t){var n;i.array=[];var r=e.target.value.split("-"),s=(0,d.Z)(r,2),l=s[0],a=s[1];a=a.replace("___","-"),Q((n={},(0,p.Z)(n,"tool".concat(t),l),(0,p.Z)(n,"column".concat(t),a),n))},i.swapAxes=function(){i.array=[],Q({toolX:i.state.toolY,toolY:i.state.toolX,columnX:i.state.columnY,columnY:i.state.columnX})},i.scalingOptions={linear:"Linear",logarithmic:"Logarithmic"},i.resultsOptions={all:"All",correct:"Correct only"},i.regressionOptions={none:"None",linear:"Linear"},i.lineOptgroupOptions={"f(x) = cx and f(x) = x/c":[{name:"c = 1.1",value:1.1},{name:"c = 1.2",value:1.2},{name:"c = 1.5",value:1.5},{name:"c = 2",value:2},{name:"c = 3",value:3},{name:"c = 4",value:4},{name:"c = 5",value:5},{name:"c = 6",value:6},{name:"c = 7",value:7},{name:"c = 8",value:8},{name:"c = 9",value:9},{name:"c = 10",value:10},{name:"c = 100",value:100},{name:"c = 1000",value:1e3},{name:"c = 10000",value:1e4},{name:"c = 100000",value:1e5},{name:"c = 1000000",value:1e6}]},i.defaultValues={scaling:i.scalingOptions.logarithmic,results:i.resultsOptions.correct,regression:i.regressionOptions.none,line:Object.values(i.lineOptgroupOptions)[0][11].value},i.state=i.setup(),i.maxX="",i.minX="",i.lineCount=1,i}return(0,l.Z)(n,[{key:"setup",value:function(){var e,t,n,i=H(this.props.tools[0])+" "+this.props.columns[0][1],r=(0,c.Z)((0,c.Z)({},this.defaultValues),X()),s=r.results,l=r.scaling,a=r.toolX,o=r.toolY,u=r.columnX,h=r.columnY,g=r.line,f=r.regression;if(B(a)||B(u)){var p=ne(this.props.tools,this.props.hiddenCols),m=(0,d.Z)(p,2),v=m[0],I=m[1];n=void 0===v,a=v,e="".concat(v,"-").concat(I)}else n=!1,e="".concat(a,"-").concat(u);if(B(o)||B(h)){var b=ne(this.props.tools,this.props.hiddenCols),C=(0,d.Z)(b,2),x=C[0],y=C[1];n=void 0===x,o=x,t="".concat(x,"-").concat(y)}else n=!1,t="".concat(o,"-").concat(h);var Z={dataX:e,dataY:t,results:s,scaling:l,regression:f,toolX:0,toolY:0,line:g,columnX:1,columnY:1,nameX:i,nameY:i,value:!1,areAllColsHidden:n};return e&&!n&&(Z=(0,c.Z)((0,c.Z)({},Z),this.extractAxisInfoByName(e,"X"))),t&&!n&&(Z=(0,c.Z)((0,c.Z)({},Z),this.extractAxisInfoByName(t,"Y"))),Z}},{key:"componentDidMount",value:function(){window.addEventListener("popstate",this.refreshUrlState)}},{key:"componentWillUnmount",value:function(){window.removeEventListener("popstate",this.refreshUrlState)}},{key:"renderAllSettings",value:function(){var e=this,t=this.props.tools.reduce((function(t,n,i){return Object.assign(t,(0,p.Z)({},H(n),n.columns.filter((function(t){return!e.props.hiddenCols[i].includes(t.colIdx)})).map((function(e,t){return{name:e.display_title,value:i+"-"+e.colIdx}}))))}),{});return(0,j.jsx)("div",{className:"settings-container",children:(0,j.jsxs)("div",{className:"settings-border-container",children:[(0,j.jsxs)("div",{className:"settings-subcontainer flexible-width",children:[at("X-Axis",this.state.dataX,(function(t){return e.setAxis(t,"X")}),t),(0,j.jsx)("span",{className:"setting icon",children:(0,j.jsx)(y.G,{icon:it.Ssp,onClick:function(){return e.swapAxes()}})}),at("Y-Axis",this.state.dataY,(function(t){return e.setAxis(t,"Y")}),t)]}),(0,j.jsxs)("div",{className:"settings-subcontainer",children:[lt("Scaling",this.state.scaling,(function(e){return Q({scaling:e.target.value})}),this.scalingOptions),lt("Results",this.state.results,(function(e){return Q({results:e.target.value})}),this.resultsOptions,"In addition to which results are selected here, any filters will still be applied."),(0,j.jsx)("div",{className:"settings-subcontainer",children:at("Aux. Lines",this.state.line,(function(e){return Q({line:e.target.value})}),this.lineOptgroupOptions,"Adds the two auxiliary lines f(x) = cx and f(x) = x/c to the plot, with c being the chosen factor in the dropdown.")})]}),(0,j.jsx)("div",{className:"settings-subcontainer",children:lt("Regression",this.state.regression,(function(t){e.checkForNumericalSelections()?Q({regression:t.target.value}):alert("Regressions are only available for numerical selections.")}),this.regressionOptions,this.state.regression!==this.regressionOptions.none&&this.regressionData?this.regressionData.text:void 0)})]})})}},{key:"renderRegressionAndConfidenceIntervals",value:function(){var e=ot(Math.floor(this.minX),Math.ceil(this.maxX),this.regressionData.regression.predict);return[this.renderConfidenceIntervalLine(this.regressionData.upperConfidenceBorderData,"upper"),this.renderConfidenceIntervalLine(this.regressionData.lowerConfidenceBorderData,"lower"),this.renderRegressionLine(e)]}},{key:"render",value:function(){var e=this;this.renderData();var t=this.state.scaling===this.scalingOptions.linear,n=this.props.isFlexible?st.wu:st.dp,i=this.props.isFlexible?{height:window.innerHeight-200}:{height:1e3,width:1500},r=this.maxX>this.maxY?this.maxX:this.maxY;return(0,j.jsxs)("div",{className:"scatterPlot",children:[!this.state.areAllColsHidden&&this.renderAllSettings(),(0,j.jsxs)(n,(0,c.Z)((0,c.Z)({className:"scatterPlot__plot",margin:{left:90},yType:this.handleType(this.state.toolY,this.state.columnY),xType:this.handleType(this.state.toolX,this.state.columnX),xDomain:"ordinal"!==this.handleType(this.state.toolX,this.state.columnX)?[this.minX,this.maxX]:null,yDomain:"ordinal"!==this.handleType(this.state.toolY,this.state.columnY)?[this.minY,this.maxY]:null},i),{},{children:[(0,j.jsx)(st.pW,{yType:this.handleType(this.state.toolY,this.state.columnY),xType:this.handleType(this.state.toolX,this.state.columnX)}),(0,j.jsx)(st.xL,{yType:this.handleType(this.state.toolY,this.state.columnY),xType:this.handleType(this.state.toolX,this.state.columnX)}),(0,j.jsx)(st.Ci,{className:"middle-line",axisStart:{x:t?0:1,y:t?0:1},axisEnd:{x:r,y:r},axisDomain:[0,1e10],style:{ticks:{stroke:"#009440",opacity:0},text:{stroke:"none",fill:"#009440",fontWeight:600,opacity:0}}}),(0,j.jsx)(st.Ci,{axisStart:{x:t?0:this.state.line,y:t?0:1},axisEnd:{x:this.maxX,y:this.maxX/this.state.line},axisDomain:[0,1e10],style:{ticks:{stroke:"#ADDDE1",opacity:0},text:{stroke:"none",fill:"#6b6b76",fontWeight:600,opacity:0}}}),(0,j.jsx)(st.Ci,{axisStart:{x:t?0:1,y:t?0:this.state.line},axisEnd:{x:this.maxX,y:this.maxX*this.state.line},axisDomain:[0,1e10],style:{ticks:{stroke:"#ADDDE1",opacity:0},text:{stroke:"none",fill:"#6b6b76",fontWeight:600,opacity:0}}}),(0,j.jsx)(st.Kc,{title:this.state.nameX,tickFormat:function(e){return e},yType:this.handleType(this.state.toolY,this.state.columnY),xType:this.handleType(this.state.toolX,this.state.columnX)}),(0,j.jsx)(st.B2,{title:this.state.nameY,tickFormat:function(e){return e},yType:this.handleType(this.state.toolY,this.state.columnY),xType:this.handleType(this.state.toolX,this.state.columnX)}),(0,j.jsx)(st.e9,{data:this.dataArray,onValueMouseOver:function(t,n){return e.setState({value:t})},onValueMouseOut:function(t,n){return e.setState({value:null})}}),this.state.regression!==this.regressionOptions.none&&this.checkForNumericalSelections()&&this.regressionData&&0!==this.lineCount&&this.renderRegressionAndConfidenceIntervals(),this.state.value?(0,j.jsx)(st.kW,{value:this.state.value}):null]})),this.state.areAllColsHidden?(0,j.jsx)("div",{className:"plot__noresults",children:"No columns to show!"}):0===this.lineCount&&(0,j.jsxs)("div",{className:"plot__noresults",children:["No"," ",this.state.results===this.resultsOptions.correct&&"correct"," ","results",this.props.table.length>0&&" with valid data points",this.hasInvalidLog&&" (negative values are not shown in logarithmic plot)"]})]})}}]),n}(i.Component),ht=function(e){(0,a.Z)(n,e);var t=(0,o.Z)(n);function n(e){var i;return(0,s.Z)(this,n),(i=t.call(this,e)).isColRelevantForTool=function(e,t){return i.isColVisible(t,e)&&"text"!==e.type&&"status"!==e.type},i.isToolRelevantForCol=function(e,t){var n=e.columns.find((function(e){return e.display_title===t}));return i.isToolVisible(e)&&n&&i.isColVisible(e.toolIdx,n.colIdx)},i.isColVisibleInAnyTool=function(e){return i.props.tools.some((function(t){return t.columns.some((function(n){return n.colIdx===e.colIdx&&i.isColVisible(t.toolIdx,n.colIdx)}))}))},i.isInVisibleRunsetSupportingScore=function(e){return i.props.tools.filter((function(e){return i.isToolVisible(e)})).some((function(t){return t.scoreBased&&t.columns.some((function(t){return t.display_title===e}))}))},i.isToolVisible=function(e){return e.columns.length!==i.props.hiddenCols[e.toolIdx].length},i.isColVisible=function(e,t){return!i.props.hiddenCols[e].includes(t)},i.updateDimensions=function(){i.setState({height:window.innerHeight})},i.refreshUrlState=function(){i.setState(i.setPlotData())},i.renderLegend=function(){if(i.state.isValue)return i.props.tools.filter((function(e){return i.isToolRelevantForCol(e,i.state.selection)})).map(H).map((function(e){return{title:e,disabled:i.state.isInvisible.some((function(t){return t===e})),strokeWidth:4}}));var e=i.props.tools[i.state.selection.split("-")[1]];return i.state.areAllColsHidden?[]:e.columns.filter((function(t){return i.isColRelevantForTool(t.colIdx,e.toolIdx)})).map((function(e){return{title:e.display_title,disabled:i.state.isInvisible.some((function(t){return t===e.display_title})),strokeWidth:4}}))},i.renderAll=function(){var e=i.state.selection;if(i.state.isValue){var t=i.state.plot===i.plotOptions.scoreBased?i.props.tools.filter((function(e){return e.scoreBased})):i.props.tools;t.forEach((function(t){return i.renderData(e,t.toolIdx,e+t.toolIdx)}))}else if(!i.state.areAllColsHidden){var n=i.state.selection.split("-")[1],r=i.props.tools[n];r.columns.filter((function(e){return i.isColRelevantForTool(e.colIdx,r.toolIdx)&&i.isColVisible(r.toolIdx,e.colIdx)})).forEach((function(e){return i.renderData(e.display_title,n,e.display_title)}))}},i.renderData=function(e,t,n){var r=i.state.plot===i.plotOptions.scoreBased,s="ordinal"===i.handleType(),l=i.props.tools[t].columns.findIndex((function(t){return t.display_title===e})),a=[],o=0;(!i.state.isValue||l>=0&&i.isColVisible(t,l))&&(a=i.props.table.map((function(e){var n=e.results[t],a=null;return"correct"===n.category||!i.state.isResultSelectionDisabled&&i.state.results!==i.resultsOptions.correct?(a=n.values[l].raw||null,s||null===a||(a=isFinite(+a)?+a:null)):r&&n.score&&"correct"!==n.category&&(o+=n.score),{value:a,rowName:i.props.getRowName(e),score:n.score}})),i.state.plot!==i.plotOptions.direct&&(a=a.filter((function(e){return null!==e.value})),a=i.sortArray(a,e))),i.hasInvalidLog=!1;var c=[],u=r?o:0;a.forEach((function(n){var s=n.value,l=n.rowName,a=n.score,o=i.state.scaling===i.scalingOptions.logarithmic&&s<=0;u+=r?a:1,null===s||o||c.push({x:u,y:s,task:l,series:i.state.isValue?H(i.props.tools[t]):e}),o&&(i.hasInvalidLog=!0)})),i[n]=c},i.sortArray=function(e,t){var n=i.possibleValues.find((function(e){return e.display_title===t}));return i.state.isValue&&["text","status"].includes(n.type)?e.sort((function(e,t){return e.value>t.value?1:t.value>e.value?-1:0})):e.sort((function(e,t){return+e.value-+t.value}))},i.renderColumns=function(){return i.possibleValues.map((function(e){var t=i.state.plot===i.plotOptions.scoreBased&&!i.isInVisibleRunsetSupportingScore(e.display_title);return(0,j.jsx)("option",{value:e.display_title,name:e.display_title,disabled:t,className:t?"disabled":"",children:e.display_title},e.display_title)}))},i.renderLines=function(){i.lineCount=0;var e=function(){return T[(i.lineCount-1)%T.length]};if(i.state.isValue)return i.props.tools.map((function(t,n){if(!i.isToolRelevantForCol(t,i.state.selection)||i.state.plot===i.plotOptions.scoreBased&&!t.scoreBased)return null;var r=i.state.selection,s=i[r+n],l=H(t);return i.lineCount++,(0,j.jsx)(st.LU,{data:s,color:e(),opacity:i.handleLineState(l),onValueMouseOver:function(e,t){return i.setState({value:e})},onValueMouseOut:function(e,t){return i.setState({value:null})}},l)})).filter((function(e){return!!e}));if(!i.state.areAllColsHidden){var t=i.state.selection.split("-")[1],n=i.props.tools[t];return n.columns.filter((function(e){return i.isColRelevantForTool(e.colIdx,n.toolIdx)})).map((function(t){var n=i[t.display_title];return i.lineCount++,(0,j.jsx)(st.LU,{data:n,color:e(),opacity:i.handleLineState(t.display_title),onValueMouseOver:function(e,t){return i.setState({value:e})},onValueMouseOut:function(e,t){return i.setState({value:null})}},t.display_title)}))}},i.handleLineState=function(e){return i.state.isInvisible.indexOf(e)<0?1:0},i.toggleShow=function(e){var t=e.target;i.setState((0,p.Z)({},t.name,t.checked))},i.handleType=function(){var e=i.state.selection,t=i.possibleValues.findIndex((function(t){return t.display_title===e})),n=i.state.isValue&&t>=0?i.possibleValues[t].type:null;return!i.state.isValue||"text"!==n&&"status"!==n?i.state.scaling===i.scalingOptions.linear?"linear":"log":"ordinal"},i.plotOptions={quantile:"Quantile Plot",direct:"Direct Plot"},i.scalingOptions={linear:"Linear",logarithmic:"Logarithmic"},i.resultsOptions={all:"All",correct:"Correct only"},i.defaultValues={plot:i.plotOptions.quantile,scaling:i.scalingOptions.logarithmic,results:i.resultsOptions.correct},i.checkForScoreBasedPlot(),i.possibleValues=[],i.lineCount=1,i.state=i.setPlotData(),i}return(0,l.Z)(n,[{key:"setPlotData",value:function(){var e=this,t=X(),n=(0,c.Z)((0,c.Z)({},this.defaultValues),t),i=n.selection,r=n.plot,s=n.scaling,l=n.results,a=i,o=this.props.tools.map((function(e){return e.toolIdx})).join(""),u=new RegExp("runset-["+o+"]"),d=void 0===i||!u.test(i);if(i=d?this.getColumnSelection(i):this.getRunsetSelection(i),r===this.plotOptions.scoreBased&&(d&&!this.isInVisibleRunsetSupportingScore(i)||!d)){this.setPossibleValues();var h=this.possibleValues.find((function(t){return"status"!==t.type&&e.isInVisibleRunsetSupportingScore(t.display_title)}));h||(h=this.possibleValues.find((function(t){return e.isInVisibleRunsetSupportingScore(t.display_title)}))),i=h?h.display_title:i,d=!0}return a&&i&&a!==i&&Q({selection:i}),{selection:i,plot:r,scaling:s,results:l,isValue:d,isInvisible:[],areAllColsHidden:void 0===i,isResultSelectionDisabled:r===this.plotOptions.scoreBased}}},{key:"getColumnSelection",value:function(e){var t=e?this.props.tools.map((function(e){return e.columns})).flat().find((function(t){return t.display_title===e})):this.props.preSelection;if(!t||!this.isColVisibleInAnyTool(t)){var n=ne(this.props.tools,this.props.hiddenCols),i=(0,d.Z)(n,2),r=i[0],s=i[1];t=void 0!==r?this.props.tools.find((function(e){return e.toolIdx===r})).columns.find((function(e){return e.colIdx===s})):void 0}return t&&t.display_title}},{key:"getRunsetSelection",value:function(e){var t=this,n=parseInt(e.split("-")[1]);return this.props.tools.find((function(e){return e.toolIdx===n})).columns.some((function(e){return t.isColVisible(n,e.colIdx)}))||(n=ne(this.props.tools,this.props.hiddenCols)[0]),void 0!==n?"runset-"+n:void 0}},{key:"checkForScoreBasedPlot",value:function(){var e=this;this.props.tools.some((function(t){return t.scoreBased&&e.isToolVisible(t)}))&&(this.plotOptions=(0,c.Z)({scoreBased:"Score-based Quantile Plot"},this.plotOptions),this.props.tools.every((function(t){return t.scoreBased&&e.isToolVisible(t)}))&&(this.defaultValues.plot=this.plotOptions.scoreBased))}},{key:"componentDidMount",value:function(){window.addEventListener("resize",this.updateDimensions),window.addEventListener("popstate",this.refreshUrlState)}},{key:"componentWillUnmount",value:function(){window.removeEventListener("resize",this.updateDimensions),window.removeEventListener("popstate",this.refreshUrlState)}},{key:"setPossibleValues",value:function(){var e=this;this.props.tools.forEach((function(t){t.columns.forEach((function(n){e.isColVisible(t.toolIdx,n.colIdx)&&!e.possibleValues.some((function(e){return e.display_title===n.display_title}))&&e.possibleValues.push(n)}))}))}},{key:"renderAllSettings",value:function(){var e=this,t=this.state.plot===this.plotOptions.scoreBased?"Score-based Quantile Plots always show correct results offset by the score of wrong results. Any defined filters will still be applied.":"In addition to which results are selected here, any defined filters will still be applied.";return(0,j.jsxs)("div",{className:"settings-legend-container",children:[(0,j.jsx)("div",{className:"settings-container",children:(0,j.jsxs)("div",{className:"settings-border-container",children:[(0,j.jsxs)("div",{className:"settings-subcontainer flexible-width",children:[(0,j.jsxs)("div",{className:"setting flexible-width",children:[(0,j.jsx)("span",{className:"setting-label",children:"Selection:"}),(0,j.jsxs)("select",{className:"setting-select",name:"setting-Selection",value:this.state.selection,onChange:function(e){return Q({selection:e.target.value})},children:[(0,j.jsx)("optgroup",{label:"Runsets",children:this.props.tools.map((function(t,n){var i=e.state.plot===e.plotOptions.scoreBased;return e.isToolVisible(t)?(0,j.jsx)("option",{value:"runset-"+n,name:"Runset "+n,disabled:i,className:i?"disabled":"",children:H(t)},"runset-"+n):null}))}),(0,j.jsx)("optgroup",{label:"Columns",children:this.renderColumns()})]})]}),lt("Plot",this.state.plot,(function(e){return Q({plot:e.target.value})}),this.plotOptions)]}),(0,j.jsxs)("div",{className:"settings-subcontainer",children:[lt("Scaling",this.state.scaling,(function(e){return Q({scaling:e.target.value})}),this.scalingOptions),lt("Results",this.state.results,(function(e){return Q({results:e.target.value})}),this.resultsOptions,t,this.state.isResultSelectionDisabled)]})]})}),(0,j.jsx)("div",{children:(0,j.jsx)(st.Ri,{colors:T,items:this.renderLegend(),onItemClick:function(t,n){var i;if(i=t.title.toString(),!(e.state.isInvisible.indexOf(i)<0))return e.setState({isInvisible:e.state.isInvisible.filter((function(e){return e!==i}))});e.setState({isInvisible:e.state.isInvisible.concat([i])})}})})]})}},{key:"render",value:function(){this.setPossibleValues(),this.renderAll();var e=this.props.isFlexible?st.wu:st.dp,t=this.props.isFlexible?{height:window.innerHeight-200}:{height:1e3,width:1500};return(0,j.jsxs)("div",{className:"quantilePlot",children:[!this.state.areAllColsHidden&&this.renderAllSettings(),(0,j.jsxs)(e,(0,c.Z)((0,c.Z)({margin:{left:90},yType:this.handleType()},t),{},{children:[(0,j.jsx)(st.pW,{}),(0,j.jsx)(st.xL,{}),(0,j.jsx)(st.Kc,{tickFormat:function(e){return e}}),(0,j.jsx)(st.B2,{tickFormat:function(e){return e}}),this.state.value?(0,j.jsx)(st.kW,{value:this.state.value}):null,this.renderLines()]})),this.state.areAllColsHidden?(0,j.jsx)("div",{className:"plot__noresults",children:"No columns to show!"}):0===this.lineCount&&(0,j.jsx)("div",{className:"plot__noresults",children:this.hasInvalidLog?"All results have undefined values":"No correct results"})]})}}]),n}(i.Component),gt=n(8282),ft=(n(8995),(0,gt.u7)(gt.ZP.Range)),pt=500,mt=setTimeout((function(){}),pt),vt=function(e){(0,a.Z)(n,e);var t=(0,o.Z)(n);function n(e){var i;(0,s.Z)(this,n),i=t.call(this,e);var r=e.filter||{values:[]},l=r.values,a=r.min,o=r.max,c=r.type,u=r.number_of_significant_digits,d=0,h=0;if("measure"===c||"number"===c){var g=new ee(u).build();d=g(a),h=g(o);var f=l&&l[0];if(f&&f.includes(":")){var p=i.handleMinMaxValue(f,u);d=p.min,h=p.max}}return i.state={title:e.availableFilters&&e.availableFilters.length?e.availableFilters[0].title:"",values:[],idx:V(["availableFilters",0,"idx"],0,e),active:!0,selectedDistincts:[],sliderMin:d,sliderMax:h,numericMin:null,numericMax:null},i}return(0,l.Z)(n,[{key:"sendFilterUpdate",value:function(e){var t=this.props.filter,n=t.type,i=t.categories;i&&i.includes("empty ")&&!e.includes(be)&&(e=e.concat(be)),0===e.length&&"status"===n?this.props.onFilterUpdate({values:[W],title:this.state.title||this.props.title}):this.props.onFilterUpdate({values:e,title:this.state.title||this.props.title})}},{key:"componentDidUpdate",value:function(e,t){if(this.props.filter&&(!e.filter||e.filter.values!==this.props.filter.values)){var n=this.props.filter,i=n.values,r=n.number_of_significant_digits,s=(0,d.Z)(i,1)[0];if(s&&s.includes(":")){var l=this.handleMinMaxValue(s,r),a=l.min,o=l.max;this.setState({sliderMin:a,sliderMax:o,numericMin:a,numericMax:o})}}}},{key:"handleMinMaxValue",value:function(e,t){var n=new ee(t).build(),i=this.props.filter||{min:0,max:1/0},r=i.min,s=i.max,l=e.split(":"),a=(0,d.Z)(l,2),o=a[0],c=a[1];return{min:""!==o.trim()?o:n(r),max:""!==c.trim()?c:n(s)}}},{key:"handleNumberChange",value:function(e,t){var n,i,r={};if(r.sliderMin=Number(null!==(n=this.state.numericMin)&&void 0!==n?n:this.state.sliderMin),r.sliderMax=Number(null!==(i=this.state.numericMax)&&void 0!==i?i:this.state.sliderMax),r.sliderMin>r.sliderMax){var s=r.sliderMax;r.sliderMax=r.sliderMin,r.sliderMin=s}var l=r.sliderMin<=Number(e)?"":r.sliderMin,a=r.sliderMax>=Number(t)?"":r.sliderMax;r.values=["".concat(l,":").concat(a)],this.setState(r),this.sendFilterUpdate(r.values)}},{key:"render",value:function(){var e=this,t=this.props,n=t.filter,r=t.editable,s=t.availableFilters,l=i.createRef();return(0,j.jsxs)("div",{className:"filter-card",children:[function(t,i){return(0,j.jsx)("div",{className:"filter-card--header",children:i?(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)("span",{style:{marginLeft:"12px"},children:"Add filter for: "}),(0,j.jsxs)("select",{className:"filter-selection",defaultValue:"-1",ref:l,onChange:function(t){var n=t.target.value;-1!==n&&(e.setState({idx:-1,active:!0}),l.current.value="-1",e.props.addFilter(n))},children:[(0,j.jsx)("option",{value:"-1",disabled:!0,children:"Column"}),s.map((function(e){var t=e.idx,n=e.display_title;return(0,j.jsx)("option",{value:t,children:n},t)}))]})]}):(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)("h4",{className:"title",children:"".concat(n.display_title," ").concat(n.unit?"("+n.unit+")":"")}),(0,j.jsx)(y.G,{className:"delete-button",icon:it.$aW,onClick:function(){e.props.removeFilter()}})]})})}(this.props.name,r),function(t){if(!t)return null;var n,r=t.title,s=t.type,l=t.number_of_significant_digits,a=t.categories,o=t.statuses,c=t.values,h=void 0===c?[]:c,g=t.min,f=t.max,p=i.createRef();if("status"===s)n=(0,j.jsxs)(j.Fragment,{children:[e.props.filter.categories&&e.props.filter.categories.includes("empty ")&&(0,j.jsxs)("div",{className:"filter-card--body--empty-rows",children:["Empty rows"," ",(0,j.jsx)("input",{type:"checkbox",name:"empty-rows",ref:p,checked:h.includes("empty "),onChange:function(t){var n="empty ";if(t.target.checked){var i=[].concat((0,u.Z)(h),[n]);e.setState({values:i}),e.sendFilterUpdate(i)}else{var r=S(n,h);e.setState({values:r}),e.sendFilterUpdate(r)}}})]}),"Category",(0,j.jsx)("ul",{className:"filter-card--body--list",children:a.filter((function(e){return"empty "!==e})).sort().map((function(t){var n=i.createRef();return(0,j.jsxs)("li",{children:[(0,j.jsx)("input",{type:"checkbox",name:"cat-".concat(t),checked:h.includes(t),ref:n,onChange:function(n){if(n.target.checked){var i=[].concat((0,u.Z)(h),[t]);e.setState({values:i}),e.sendFilterUpdate(i)}else{var r=S(t,h);e.setState({values:r}),e.sendFilterUpdate(r)}}}),(0,j.jsx)("label",{htmlFor:"cat-".concat(t),onClick:function(){return n.current.click()},className:t,children:t})]},t)}))}),"Status",(0,j.jsx)("ul",{className:"filter-card--body--list",children:o.sort().map((function(t){var n=i.createRef();return(0,j.jsxs)("li",{children:[(0,j.jsx)("input",{type:"checkbox",name:"stat-".concat(t),ref:n,checked:h.includes(t),onChange:function(n){if(n.target.checked){var i=[].concat((0,u.Z)(h),[t]);e.setState({values:i}),e.sendFilterUpdate(i)}else{var r=S(t,h);e.setState({values:r}),e.sendFilterUpdate(r)}}}),(0,j.jsx)("label",{htmlFor:"stat-".concat(t),onClick:function(){return n.current.click()},children:t})]},t)}))})]});else if("text"===s){var m=(0,d.Z)(h,1)[0];n=(0,j.jsx)("input",{type:"text",name:"text-".concat(r),placeholder:"Search for value",value:m,onChange:function(t){var n=t.target.value;clearTimeout(mt),e.setState({values:[n]}),mt=setTimeout((function(){e.sendFilterUpdate([n])}),pt)}})}else{var v=new ee(l).build();g=v(g),f=v(f);var I=re(g),b=re(f),C=I.length>b.length?I:b;n=(0,j.jsxs)(j.Fragment,{children:[(0,j.jsxs)("div",{className:"filter-card--range-container",children:[(0,j.jsx)("b",{children:g}),(0,j.jsx)("b",{children:f})]}),(0,j.jsx)(ft,{min:Number(g),max:Number(f),step:C,defaultValue:[Number(g),Number(f)],value:[Number(e.state.sliderMin),Number(e.state.sliderMax)],onChange:function(t){var n=(0,d.Z)(t,2),i=n[0],r=n[1];e.setState({sliderMin:v(i),sliderMax:v(r)})},onAfterChange:function(t){var n=(0,d.Z)(t,2),i=n[0],r=n[1],s=v(i),l=v(r),a=s===g?"":s,o=l===f?"":l;e.setState({sliderMin:s,sliderMax:l,numericMin:i,numericMax:r,values:["".concat(a,":").concat(o)]}),e.sendFilterUpdate(["".concat(a,":").concat(o)])}}),(0,j.jsxs)("div",{className:"filter-card--range-input-fields",children:[(0,j.jsx)("label",{className:"range-input-fields--min",htmlFor:"inp-".concat(r,"-min"),children:"minimum"}),(0,j.jsx)("label",{className:"range-input-fields--max",htmlFor:"inp-".concat(r,"-max"),children:"maximum"}),(0,j.jsx)("input",{type:"number",name:"inp-".concat(r,"-min"),value:null!==e.state.numericMin?e.state.numericMin:e.state.sliderMin,lang:"en-US",step:C,onChange:function(t){var n=t.target.value;e.numericMinTimeout&&clearTimeout(e.numericMinTimeout),e.setState({numericMin:n}),e.numericMinTimeout=setTimeout((function(){return e.handleNumberChange(g,f)}),pt)}}),(0,j.jsx)("input",{type:"number",name:"inp-".concat(r,"-max"),step:C,lang:"en-US",value:null!==e.state.numericMax?e.state.numericMax:e.state.sliderMax,onChange:function(t){var n=t.target.value;e.numericMaxTimeout&&clearTimeout(e.numericMaxTimeout),e.setState({numericMax:n}),e.numericMaxTimeout=setTimeout((function(){return e.handleNumberChange(g,f)}),pt)}})]})]})}return(0,j.jsx)("div",{className:"filter-card--body",children:n})}(this.props.filter)]})}}]),n}(i.PureComponent),It=function(e){(0,a.Z)(n,e);var t=(0,o.Z)(n);function n(e){var i;(0,s.Z)(this,n),i=t.call(this,e);var r=e.filters,l=e.toolName,a=e.currentFilters;for(var o in a)r[o]=(0,c.Z)((0,c.Z)((0,c.Z)({},r[o]),a[o]),{},{touched:r[o].touched+1,filtering:!0});return i.props.resetFilterHook((function(){return i.resetAllFilters()})),i.state={filters:r,toolName:l,addingFilter:!1,numCards:0},i}return(0,l.Z)(n,[{key:"getActiveFilters",value:function(){return this.state.filters.filter((function(e){return e.filtering})).sort((function(e,t){return e.numCards-t.numCards}))}},{key:"setFilter",value:function(e,t){var n=e.title,i=e.values,r=e.filtering,s=void 0===r||r,l=this.state.filters;l[t].values=i,l[t].filtering=s,l[t].touched+=1,this.setState({filters:(0,u.Z)(l)}),this.props.updateFilters({title:n,values:i},t)}},{key:"addFilter",value:function(e){var t=this.state,n=t.filters,i=t.numCards,r={filtering:!0,numCards:i,touched:0};"status"===n[e].type&&(r.values=[].concat((0,u.Z)(n[e].categories),(0,u.Z)(n[e].statuses))),n[e]=(0,c.Z)((0,c.Z)({},n[e]),r),this.setState({filters:n,addingFilter:!1,numCards:i+1})}},{key:"resetAllFilters",value:function(){var e=this.state.filters.filter((function(e){return e.filtering})),t=this.state.filters.map((function(e){return(0,c.Z)((0,c.Z)({},e),{},{filtering:!1,values:[]})}));this.setState({filters:(0,u.Z)(t)});var n,i=(0,f.Z)(e);try{for(i.s();!(n=i.n()).done;){var r=n.value;r.values&&this.props.updateFilters({title:r.display_title,values:[]},r.idx)}}catch(s){i.e(s)}finally{i.f()}}},{key:"removeFilter",value:function(e,t){var n=this.state.filters;n[e].filtering=!1,n[e].values=[],this.setState({filters:(0,u.Z)(n)}),this.props.updateFilters({title:t,values:[]},e)}},{key:"componentDidUpdate",value:function(e){var t=e.currentFilters,n=this.props.currentFilters;if(!ve()(t,n)){var i=this.state.filters;for(var r in n)i[r]=(0,c.Z)((0,c.Z)((0,c.Z)({},i[r]),n[r]),{},{touched:i[r].touched+1,filtering:!0});i=i.map((function(e,t){var i=!(!n[t]&&0!==e.touched);return(0,c.Z)((0,c.Z)({},e),{},{filtering:i,values:i?e.values:[]})})),this.setState({filters:(0,u.Z)(i)})}}},{key:"render",value:function(){var e=this,t=this.getActiveFilters(),n=this.props.hiddenCols||[],i=this.state.filters.filter((function(e,t){return!e.filtering&&!n.includes(t)}));return(0,j.jsxs)("div",{className:"filterBox--container",children:[(0,j.jsx)("h4",{className:"section-header",children:this.state.toolName}),t.length>0&&t.map((function(t,n){return(0,j.jsx)(vt,{onFilterUpdate:function(n){return e.setFilter(n,t.idx)},title:t.display_title,removeFilter:function(){return e.removeFilter(t.idx,t.display_title)},filter:t},"".concat(e.props.toolName,"-").concat(t.display_title,"-").concat(t.numCards))})),i.length&&(0,j.jsx)(vt,{availableFilters:i,editable:"true",style:{marginBottom:20},addFilter:function(t){return e.addFilter(t)},onFilterUpdate:function(t){return e.setFilter(t)}})||void 0,(0,j.jsx)("br",{})]})}}]),n}(i.PureComponent),bt=setTimeout((function(){}),500),Ct=function(e){(0,a.Z)(n,e);var t=(0,o.Z)(n);function n(e){var i;return(0,s.Z)(this,n),(i=t.call(this,e)).state={values:i.extractFilters()},e.resetFilterHook((function(){return i.resetIdFilters()})),i}return(0,l.Z)(n,[{key:"resetIdFilters",value:function(){this.setState({values:{}}),this.sendFilterUpdate({})}},{key:"sendFilterUpdate",value:function(e){this.props.updateFilters(e)}},{key:"extractFilters",value:function(){for(var e=0,t={},n=0,i=Object.keys(this.props.ids);n<i.length;n++){t[i[n]]=V(["filters",e++],"",this.props)}return t}},{key:"componentDidUpdate",value:function(e){if(!ve()(this.props.filters,e.filters)){var t=this.extractFilters();this.setState({values:t})}}},{key:"render",value:function(){var e=this,t=this.props.ids||{};return(0,j.jsx)("div",{className:"filterBox--container",children:(0,j.jsxs)("div",{className:"filter-card",children:[(0,j.jsx)("div",{className:"filter-card--header",children:(0,j.jsx)(j.Fragment,{children:(0,j.jsx)("h4",{className:"title",children:"Task filter"})})}),function(){var n=Object.entries(t).map((function(t){var n=(0,d.Z)(t,2),i=n[0],r=n[1],s=e.state.values[i]||"",l="text-task-".concat(i);return(0,j.jsxs)("div",{className:"task-id-filters",children:[(0,j.jsx)("label",{htmlFor:l,children:i}),(0,j.jsx)("br",{}),(0,j.jsx)("input",{type:"text",name:l,placeholder:r,value:s,onChange:function(t){var n=t.target.value;clearTimeout(bt);var r={values:(0,c.Z)((0,c.Z)({},e.state.values),{},(0,p.Z)({},i,n))};bt=setTimeout((function(){e.sendFilterUpdate((0,c.Z)((0,c.Z)({},e.state.values),{},(0,p.Z)({},i,n)))}),500),e.setState(r)}})]},l)}));return(0,j.jsx)("div",{className:"filter-card--body",children:n})}()]})})}}]),n}(i.PureComponent),xt=n(6123),yt=function(e){(0,a.Z)(n,e);var t=(0,o.Z)(n);function n(e){var i;(0,s.Z)(this,n),i=t.call(this,e);var r=e.filtered;return i.listeners=[],i.resetFilterHook=function(e){return i.listeners.push(e)},i.state={filters:i.createFiltersFromReactTableStructure(r),idFilters:i.retrieveIdFilters(r)},i}return(0,l.Z)(n,[{key:"componentDidUpdate",value:function(e){ve()(e.filtered,this.props.filtered)||this.setState({filters:this.createFiltersFromReactTableStructure(this.props.filtered),idFilters:this.retrieveIdFilters(this.props.filtered)})}},{key:"resetAllFilters",value:function(){this.resetAllContainers(),this.resetIdFilters()}},{key:"resetIdFilters",value:function(){this.setState({idFilters:null}),this.sendFilters({filter:this.state.filters,idFilter:null})}},{key:"resetAllContainers",value:function(){this.listeners.forEach((function(e){return e()}))}},{key:"retrieveIdFilters",value:function(e){var t=e.find((function(e){return"id"===e.id}));return t?t.values:[]}},{key:"createFiltersFromReactTableStructure",value:function(e){if(!e||!e.length)return[];var t,n=[],i=(0,f.Z)(e.flat());try{for(i.s();!(t=i.n()).done;){var r=t.value,s=r.id,l=r.value;if("id"!==s){var a=P(s),o=a.tool,c=a.name,u=a.column,d=n[o]||[];d[u]?d[u].values.push(l):d[u]={title:c,values:[l]},n[o]=d}}}catch(h){i.e(h)}finally{i.f()}return n}},{key:"flattenFilterStructure",value:function(){return Object.values(Object.values(this.state.filters))}},{key:"sendFilters",value:function(e){var t=e.filter,n=e.idFilter,i=(0,u.Z)(t.map((function(e,t){return null===e||void 0===e?null:e.map((function(e,n){return e.values.map((function(i){return{id:"".concat(t,"_").concat(e.title,"_").concat(n),value:i}}))}))})).flat(3).filter((function(e){return null!==e&&void 0!==e})));n&&n.length>0&&i.push({id:"id",values:n}),this.props.addTypeToFilter(i),this.props.setFilter(i,!0)}},{key:"updateFilters",value:function(e,t,n){var i=(0,u.Z)(this.state.filters),r=this.state.idFilters;i[e]=i[e]||[],i[e][t]=n,this.setState({filters:i}),this.sendFilters({filter:i,idFilter:r})}},{key:"updateIdFilters",value:function(e){var t=Object.keys(this.props.ids).map((function(t){return e[t]})),n=t.some((function(e){return""!==e&&!B(e)}))?t:void 0;this.setState({idFilters:n}),this.sendFilters({filter:this.state.filters,idFilter:n})}},{key:"render",value:function(){var e=this,t=this.props.hiddenCols||[];return(0,j.jsxs)("div",{className:xt("filterBox",{"filterBox--hidden":!this.props.visible}),children:[(0,j.jsxs)("div",{className:"filterBox--header",children:[(0,j.jsx)(y.G,{icon:it.YIN,className:"filterBox--header--icon",onClick:this.props.hide}),this.props.headerComponent,(0,j.jsx)(y.G,{icon:it.$aW,className:"filterBox--header--reset-icon",onClick:function(){return e.resetAllFilters()}})]}),(0,j.jsxs)("div",{className:"filter-card--container",children:[(0,j.jsx)(Ct,{ids:this.props.ids,updateFilters:function(t){return e.updateIdFilters(t)},resetFilterHook:this.resetFilterHook,filters:this.state.idFilters}),this.props.filterable.map((function(n,i){return(0,j.jsx)(It,{resetFilterHook:e.resetFilterHook,updateFilters:function(t,n){return e.updateFilters(i,n,t)},currentFilters:e.state.filters[i]||[],toolName:n.name,filters:n.columns,hiddenCols:t[i]},"filtercontainer-".concat(i))}))]})]})}}]),n}(i.PureComponent),Zt=n(6123),jt=n.n(Zt),At=n(9737),Ft=n.n(At),Wt=n(7177),Nt=n.n(Wt),Bt=function(e){(0,a.Z)(n,e);var t=(0,o.Z)(n);function n(e){var i;return(0,s.Z)(this,n),(i=t.call(this,e)).prepareTextForRendering=function(){if(""!==i.props.yamlText){var e=Nt().parseDocument(i.props.yamlText,{prettyErrors:!0}),t=e.get("input_files");t&&(Array.isArray(t.items)?t.items.forEach((function(e){e.value=i.encloseFileInTags(e.value)})):e.set("input_files",i.encloseFileInTags(t)));var n=e.get("properties");n&&Array.isArray(n.items)&&n.items.forEach((function(e){Array.isArray(e.items)&&e.items.forEach((function(e){"property_file"===e.key.value&&(e.value.value=i.encloseFileInTags(e.value.value))}))})),i.setState({content:e})}},i.encloseFileInTags=function(e){return i.state.splitterTag+i.state.fileTag+e+i.state.fileTag+i.state.splitterTag},i.loadFileInViewer=function(e,t){e.preventDefault(),i.props.loadNewFile(t)},i.state={splitterTag:"<splitter#9d81y23>",fileTag:"<file#092nt43>",content:i.props.yamlText},i}return(0,l.Z)(n,[{key:"componentDidMount",value:function(){this.prepareTextForRendering()}},{key:"componentDidUpdate",value:function(e){e.yamlText!==this.props.yamlText&&this.prepareTextForRendering()}},{key:"render",value:function(){var e=this;if(this.state.content.errors&&this.state.content.errors.length>0)return(0,j.jsx)(j.Fragment,{children:(0,j.jsxs)("div",{className:"link-overlay-text",children:["Errors parsing YAML file:",(0,j.jsx)("ul",{children:this.state.content.errors.map((function(e,t){return(0,j.jsx)("li",{children:(0,j.jsx)("pre",{children:e.message})},t)}))}),(0,j.jsx)("pre",{children:this.props.yamlText}),";"]})});Nt().scalarOptions.str.fold={lineWidth:0};var t=this.state.content.toString().split(this.state.splitterTag).map((function(t){return t.match("^".concat(e.state.fileTag,"(?:.)+").concat(e.state.fileTag,"$"))?(t=t.replace(new RegExp(e.state.fileTag,"g"),""),(0,j.jsx)("a",{onClick:function(n){return e.loadFileInViewer(n,t)},className:"link-overlay-file-link",href:e.props.createHref(t),children:t},t)):t}));return(0,j.jsx)("pre",{className:"link-overlay-text",children:t})}}]),n}(i.Component),Gt=n(1842);Gt.jQ({useWebWorkers:!1});var wt={},Yt=function(e){(0,a.Z)(n,e);var t=(0,o.Z)(n);function n(e){var i;(0,s.Z)(this,n),(i=t.call(this,e)).loadNewFile=function(e){var t=i.createFileUrl(e);i.setState({isYAML:i.isYAMLFile(e),isSecondLevel:!0,content:"loading file: ".concat(t)}),i.loadFile(t)},i.loadOriginalFile=function(){i.setState({isYAML:i.isYAMLFile(i.props.link),isSecondLevel:!1,content:"loading file: ".concat(i.props.link),error:void 0}),i.loadFile(i.props.link)},i.loadOriginalFileIfEnter=function(e){"Enter"===e.key&&i.loadOriginalFile()},i.createFileUrl=function(e){return Ft().join(i.props.link,"../"+e)},i.loadFile=i.loadFileXMLHttpRequest,i.loadFileFromZip=function(e){var t=decodeURIComponent(e),n=t.lastIndexOf("/")>t.lastIndexOf("\\")?"/":"\\",r=t.lastIndexOf(n),s=t.substring(0,r)+".zip",l=t.split(n),a="".concat(l[l.length-2],"/").concat(l[l.length-1]);s in wt?i.loadFileFromZipEntries(wt[s],a,s):i.readZipArchive(s,a)},i.readZipArchive=function(e,t){new Gt.Mr(new Gt.R(e)).getEntries().then((function(n){i.handleZipEntries(n,t,e)}),(function(n){i.readZipArchiveNoHttpRange(e,t)}))},i.readZipArchiveNoHttpRange=function(e,t){new Gt.Mr(new Gt.pE(e)).getEntries().then((function(n){i.handleZipEntries(n,t,e)}),(function(n){i.readZipArchiveManually(e,t)}))},i.readZipArchiveManually=function(e,t){try{var n=new XMLHttpRequest;n.responseType="arraybuffer",n.addEventListener("load",(function(){var r=new Uint8Array(n.response);new Gt.Mr(new Gt.I8(r)).getEntries().then((function(n){return i.handleZipEntries(n,t,e)}),i.setError)}),!1),n.addEventListener("error",i.setError,!1),n.open("GET",e),n.send()}catch(r){i.setError('HTTP request for the file "'.concat(t,'" failed'),r)}},i.handleZipEntries=function(e,t,n){wt[n]=e,i.loadFileFromZipEntries(e,t,n)},i.loadFileFromZipEntries=function(e,t,n){var r=e.find((function(e){return e.filename===t}));r?r.getData(new Gt.Ek).then((function(e){i.setState({content:e})})):i.setError('Could not find the file "'.concat(t,'" in "').concat(n,'"'))},i.setError=function(e,t){var n=t&&"string"===typeof t?t:e;i.setState({error:"".concat(n)})},i.handlePopState=function(){window.history.back(),window.addEventListener("click",i.props.close,!1)},i.renderHelpMessageForLocalLogs=function(){if("file:"!==window.location.protocol)return null;var e=(0,j.jsxs)(j.Fragment,{children:[(0,j.jsxs)("p",{children:["If you are using ",(0,j.jsx)("strong",{children:"Chrome"})," or a Chrome-based browser, try launching it with the command-line option"," ",(0,j.jsx)("strong",{children:(0,j.jsx)("code",{children:"--allow-file-access-from-files"})}),"."]}),(0,j.jsxs)("p",{children:["If you are using ",(0,j.jsx)("strong",{children:"Firefox"}),", please open the extended settings by entering ",(0,j.jsx)("code",{children:"about:config"})," in the URL bar, search for"," ",(0,j.jsx)("strong",{children:(0,j.jsx)("code",{children:"security.fileuri.strict_origin_policy"})})," ","and set this option to ",(0,j.jsx)("code",{children:"false"})," by double-clicking on it and restart your browser (",(0,j.jsx)("a",{href:"https://kb.mozillazine.org/Security.fileuri.strict_origin_policy",children:"more details"}),")."]}),(0,j.jsx)("p",{children:(0,j.jsx)("strong",{children:"Note that these settings will allow local web pages to access all of your files, so make sure to not open any untrusted local HTML documents."})})]}),t=new URL(i.state.currentFile,document.baseURI),n=function(e,t){var n=e.pathname.split("/"),i=t.pathname.split("/"),r=n.findIndex((function(e,t){return e!==i[t]}));return[n.slice(0,r).join("/"),n.slice(r).join("/")]}(window.location,t),r=(0,d.Z)(n,2),s=r[0],l=r[1];if(":"===window.location.pathname[2]){if(!s)return(0,j.jsxs)(j.Fragment,{children:[e,(0,j.jsx)("p",{children:"Alternatively, you can start a local web server serving the directories with the tables and result files, but for doing so you first need to make sure that table and result files are on the same partition."})]});"/"===s[0]&&(s=s.substring(1))}var a="127.0.0.1",o=8e3,c="http://".concat(a,":").concat(o,"/").concat(l).concat(window.location.hash);return(0,j.jsxs)(j.Fragment,{children:[e,(0,j.jsxs)("p",{children:["Alternatively, you can start a local web server serving the directories with the tables and result files.",(0,j.jsx)("br",{}),"To do so, execute the following command and then open"," ",(0,j.jsx)("a",{href:c,children:"this link"})," (adjust the port number ",o," if it is already used on your system):",(0,j.jsx)("br",{}),(0,j.jsx)(F,{children:(0,j.jsxs)("code",{children:["python3 -m http.server -b ",a," ",o," -d ",s||"/"]})})]})]})};var r=!!e.link&&i.isYAMLFile(e.link);return i.state={isYAML:r,content:"loading file: ".concat(e.link),currentFile:e.link,isSecondLevel:!1},i}return(0,l.Z)(n,[{key:"componentDidMount",value:function(){this.loadFile(this.props.link),window.history.pushState({},"",""),window.addEventListener("popstate",this.props.close,!1)}},{key:"componentDidUpdate",value:function(){var e=document.getElementById("modal-container");e&&e.focus()}},{key:"componentWillUnmount",value:function(){window.removeEventListener("popstate",this.props.close,!1),window.removeEventListener("click",this.props.close,!1)}},{key:"isYAMLFile",value:function(e){return e.endsWith(".yml")}},{key:"loadFileFetch",value:function(){var e=(0,Fe.Z)((0,Ae.Z)().mark((function e(t){var n,i;return(0,Ae.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!t){e.next=19;break}return this.setState({currentFile:t}),e.prev=2,e.next=5,fetch(t);case 5:if(n=e.sent,!Y(n.status)){e.next=13;break}return e.next=9,n.text();case 9:i=e.sent,this.setState({content:i}),e.next=14;break;case 13:throw Error("Received response status ".concat(n.status));case 14:e.next=19;break;case 16:e.prev=16,e.t0=e.catch(2),this.loadFileFromZip(t);case 19:case"end":return e.stop()}}),e,this,[[2,16]])})));return function(t){return e.apply(this,arguments)}}()},{key:"loadFileXMLHttpRequest",value:function(e){var t=this;if(e)try{this.setState({currentFile:e});var n=new XMLHttpRequest;n.addEventListener("load",(function(){if(Y(n.status)){var i=n.responseText;t.setState({content:i})}else t.loadFileFromZip(e)})),n.addEventListener("error",(function(){return t.loadFileFromZip(e)})),n.open("GET",e),n.send()}catch(i){this.loadFileFromZip(e)}}},{key:"render",value:function(){var e=this;return nt().setAppElement(document.getElementById("root")),(0,j.jsxs)(nt(),{id:"modal-container",ariaHideApp:!1,className:jt()("overlay",{"second-level":this.state.isSecondLevel}),isOpen:!0,onRequestClose:function(){return e.handlePopState()},children:[(0,j.jsxs)("div",{className:"link-overlay-header-container",children:[(0,j.jsx)(y.G,{icon:it.YIN,onClick:function(){return e.handlePopState()},className:"closing"}),this.state.isSecondLevel?(0,j.jsxs)("span",{className:"link-overlay-back-button",tabIndex:"0",role:"button",onClick:this.loadOriginalFile,onKeyDown:this.loadOriginalFileIfEnter,children:[(0,j.jsx)(y.G,{className:"link-overlay-back-icon",icon:it.acZ}),"Back to task definition"]}):""]}),this.state.error?(0,j.jsxs)("div",{className:"link-overlay-text",children:[(0,j.jsxs)("p",{style:{marginTop:"0"},children:["Error while loading content (",this.state.error,")."]}),(0,j.jsxs)("p",{children:["This could be a problem of the"," ",(0,j.jsx)("a",{href:"https://en.wikipedia.org/wiki/Same-origin_policy",children:"same-origin policy"})," ","of your browser."]}),this.renderHelpMessageForLocalLogs(),(0,j.jsxs)("p",{children:["You can also try to download the file:"," ",(0,j.jsx)("a",{href:this.state.currentFile,children:this.state.currentFile})]})]}):this.state.isYAML?(0,j.jsx)(Bt,{yamlText:this.state.content,createHref:this.createFileUrl,loadNewFile:this.loadNewFile}):(0,j.jsx)("pre",{className:"link-overlay-text",children:this.state.content})]})}}]),n}(i.Component),St=function(e){(0,a.Z)(n,e);var t=(0,o.Z)(n);function n(){var e;(0,s.Z)(this,n);for(var i=arguments.length,r=new Array(i),l=0;l<i;l++)r[l]=arguments[l];return(e=t.call.apply(t,[this].concat(r))).render=function(){return(0,j.jsxs)("button",{className:e.props.className||"reset",onClick:e.props.onClick,disabled:B(e.props.enabled)?!e.props.isFiltered:!e.props.enabled,children:[(0,j.jsxs)("span",{children:["Showing ",(0,j.jsx)("span",{className:"highlight",children:e.props.filteredCount})," of"," "]}),(e.props.className||"").includes("tooltip")&&(0,j.jsx)("span",{className:"tooltiptext tooltip-bottom",children:"Open filter menu"}),e.props.totalCount," tasks",!(e.props.className||"").includes("header")&&(0,j.jsx)(y.G,{icon:it.G_j,className:"filter-icon"})]})},e}return(0,l.Z)(n)}(i.Component);n(9e3);var kt=[{key:"summary",title:"Summary",path:"/"},{key:"table",title:"Table",path:"/table"},{key:"quantile",title:"Quantile Plot",path:"/quantile"},{key:"scatter",title:"Scatter Plot",path:"/scatter"},{key:"info",title:"Info",path:"/info",icon:(0,j.jsx)(y.G,{icon:it.Fuz})}],Vt=function(){return(kt.find((function(e){return e.path===document.location.hash.split("?")[0].substr(1)}))||{key:"summary"}).key},Rt=function(e){(0,a.Z)(n,e);var t=(0,o.Z)(n);function n(e){var r;(0,s.Z)(this,n),(r=t.call(this,e)).addTypeToFilter=function(e){return e.filter((function(e){return"id"!==e.id})).forEach((function(e){var t=e.id.split("_"),n=(0,d.Z)(t,3),i=n[0],s=n[2],l=r.state.tools[i].columns[s].type;e.type=l}))},r.getFiltersFromUrl=function(){var e=r.filterUrlRetriever()||[];return r.addTypeToFilter(e),ve()(r.lastFiltered,e)?null:e},r.updateFiltersFromUrl=function(){var e=r.getFiltersFromUrl();e&&(r.filteredData=r.runFilter(e),r.setState({tableData:r.filteredData,filtered:e}),r.lastFiltered=e)},r.updateState=function(){return r.setState({active:Vt(),hiddenCols:te(r.state.tools)})},r.toggleSelectColumns=function(e){e.stopPropagation(),r.setState((function(e){return{showSelectColumns:!e.showSelectColumns}}))},r.toggleLinkOverlay=function(e,t){e.preventDefault(),r.setState((function(e){return{showLinkOverlay:!e.showLinkOverlay,link:t}}))},r.setFilter=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];r.filteredData=t?e:e.map((function(e){return e._original}))},r.filterPlotData=function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];r.lastImmediate&&clearImmediate(r.lastImmediate),r.lastImmediate=setImmediate((function(){r.filterUrlSetter(e,{history:r.routerRef.current.history}),r.lastFiltered=e.filter((function(e){return e.values&&e.values.length>0||e.value}))})),t&&r.setFilter(r.runFilter(e),!0),r.setState({tableData:r.filteredData,filtered:e})},r.resetFilters=function(){r.setState({tableData:r.originalTable,filtered:[]})},r.findAllValuesOfColumn=function(e,t){return r.originalTools.map((function(n,i){return n.columns.map((function(s,l){if(e(n,s)){var a=r.originalTable.map((function(e){return t(e.results[i],e.results[i].values[l])})).filter(Boolean);return(0,u.Z)(new Set(a)).sort()}}))}))},r.getRowName=function(e){return e.id.filter((function(e){return e})).join(" | ")},r.getRelevantUrlParams=function(){return(document.location.href.split("?")[1]||"").split("&").filter((function(e){return e.startsWith("hidden")||e.startsWith("filter")})).join("&")},r.switchToQuantile=function(e){r.setState({quantilePreSelection:e});var t=r.getRelevantUrlParams();document.location.hash="#/quantile"+(t?"?"+t:"")};var l,a=function(e){var t=e.head,n=e.tools,i=e.rows,r=e.stats,s=e.props,l=e.initial;return{tableHeader:t,taskIdNames:t.task_id_names,tools:n.map((function(e,t){return(0,c.Z)((0,c.Z)({},e),{},{toolIdx:t,columns:e.columns.map((function(e,t){return(0,c.Z)((0,c.Z)({},e),{},{colIdx:t})})),scoreBased:i.every((function(e){return void 0!==e.results[t].score}))})})),columns:n.map((function(e){return e.columns.map((function(e){return e.title}))})),tableData:i,stats:r,properties:s,initial:l}}(e.data),o=a.tableHeader,h=a.taskIdNames,g=a.tools,p=a.columns,m=a.tableData,v=a.stats,b=a.initial;b&&!document.location.href.includes("#")&&(l=b,document.location.href=encodeURI("".concat(document.location.href,"#").concat(l)));var C=function(e){var t=e.tools,n=e.rows;return t.map((function(e,t){var i,r=e.tool,s=e.date,l=e.niceName,a="".concat(r," ").concat(s," ").concat(l),o=e.columns.map((function(e,t){if(e)return"status"===e.type?(i=t,(0,c.Z)((0,c.Z)({},e),{},{categories:{},statuses:{},idx:t})):"text"===e.type?(0,c.Z)((0,c.Z)({},e),{},{distincts:{},idx:t}):(0,c.Z)((0,c.Z)({},e),{},{min:1/0,max:-1/0,idx:t})}));B(i)||(o[i]=(0,c.Z)((0,c.Z)({},o[i]),{},{categories:{},statuses:{}}));var u,d=(0,f.Z)(n);try{for(d.s();!(u=d.n()).done;){var h=u.value.results[t];for(var g in B(i)||(o[i].categories["".concat(h.category," ")]=!0),h.values){var p=h.values[g].raw,m=o[g];m&&!B(p)&&("status"===m.type?m.statuses[p]=!0:"text"===m.type?m.distincts[p]=!0:(m.min=Math.min(m.min,Number(p)),m.max=Math.max(m.max,Number(p))))}}}catch(v){d.e(v)}finally{d.f()}return{name:a,columns:o.map((function(e){var t=e.distincts,n=e.categories,i=e.statuses,r=(0,I.Z)(e,Ie);return t?(0,c.Z)((0,c.Z)({},r),{},{distincts:Object.keys(t)}):n?(0,c.Z)((0,c.Z)({},r),{},{categories:Object.keys(n),statuses:Object.keys(i)}):r}))}}))}(r.props.data);r.originalTable=m,r.originalTools=g,r.taskIdNames=h,r.columns=p,r.stats=v,r.tableHeader=o,r.filteredData=[],r.routerRef=i.createRef(),r.state={tools:g,tableData:m,filterable:C,showSelectColumns:!1,showLinkOverlay:!1,filtered:[],filterBoxVisible:!1,active:Vt(),quantilePreSelection:g[0].columns[1],hiddenCols:te(g)},r.statusValues=r.findAllValuesOfColumn((function(e,t){return"status"===t.type}),(function(e,t){return G(t)})),r.originalTools.forEach((function(e,t){return e.columns.filter((function(e){return"status"===e.type})).forEach((function(e,n){r.originalTable.some((function(e){return"empty"===e.results[t].category}))&&r.statusValues[t][n].push(be)}))})),r.categoryValues=r.findAllValuesOfColumn((function(e,t){return"status"===t.type}),(function(e,t){return e.category}));var x=r.categoryValues.map((function(e){return e&&e.map((function(e){return e&&e.map((function(e){return"".concat(e," ")}))}))}));r.filterUrlSetter=_(r.statusValues,x),r.filterUrlRetriever=function(e,t){var n=z({categoryValues:t,statusValues:e});return function(e){var t=X(e);return t.filter?n(t.filter):null}}(r.statusValues,x);var y=r.getFiltersFromUrl();return y&&(r.filteredData=r.runFilter(y),r.lastFiltered=y,r.state=(0,c.Z)((0,c.Z)({},r.state),{},{tableData:r.filteredData,filtered:y})),r}return(0,l.Z)(n,[{key:"componentDidMount",value:function(){var e=this;this.removeHistoryListener=this.routerRef.current.history.listen((function(t,n){e.updateState(),"POP"===n&&e.updateFiltersFromUrl()}))}},{key:"componentWillUnmount",value:function(){this.removeHistoryListener()}},{key:"runFilter",value:function(e){var t=e.reduce((function(e,t){var n=t.id,i=t.value,r=t.type,s=t.values;if(B(i)&&B(s)||"string"===typeof i&&"all"===i.trim())return e;if("id"===n)return e.id={value:i,values:s},e;var l,a=P(n),o=a.tool,c=a.column;if("diff"===i)return e.diff||(e.diff=[]),e.diff.push({col:c}),e;if(e[o]||(e[o]={}),N({type:r})&&i.includes(":")){var u=i.split(":"),h=(0,d.Z)(u,2),g=h[0],f=h[1];l={min:g=""===g?-1/0:Number(g),max:f=""===f?1/0:Number(f)}}else l=" "===i[i.length-1]?{category:i.substr(0,i.length-1)}:"status"===r?{status:i}:{value:i};return e[o][c]||(e[o][c]=[]),e[o][c].push(l),e}),{});return Ce(t)(this.originalTable)}},{key:"render",value:function(){var e,t,n=this,i=function(e){var t=e.className,i=e.isReset,r=void 0!==i&&i,s=e.onClick,l=e.enabled;return(0,j.jsx)(St,{className:t,showFilterText:r,onClick:s,enabled:l,isFiltered:!!n.state.filtered.length,resetFilters:n.resetFilters,filteredCount:n.state.tableData.length,totalCount:n.originalTable.length})},r=this.getRelevantUrlParams();return(0,j.jsx)(h.UT,{ref:this.routerRef,children:(0,j.jsxs)("div",{className:"overview",children:[(0,j.jsxs)("div",{className:"overview-container",children:[(0,j.jsx)(yt,{headerComponent:i({className:"filterBox--header--reset",isReset:!0,enabled:!1}),tableHeader:this.tableHeader,tools:this.state.tools,selectColumn:this.toggleSelectColumns,filterable:this.state.filterable,setFilter:this.filterPlotData,resetFilters:this.resetFilters,filtered:this.state.filtered,visible:this.state.filterBoxVisible,hiddenCols:this.state.hiddenCols,hide:function(){n.setState({filterBoxVisible:!1})},ids:(e=this.originalTable,t=this.taskIdNames,V(["0","id"],[],e).reduce((function(e,n,i){return(0,c.Z)((0,c.Z)({},e),{},(0,p.Z)({},t[i],n))}),{})),addTypeToFilter:this.addTypeToFilter}),(0,j.jsxs)("div",{className:"menu",children:[kt.map((function(e){var t=e.key,i=e.title,s=e.path,l=e.icon;return(0,j.jsxs)(h.rU,{className:jt()("menu-item",{selected:n.state.active===t}),to:s+(r?"?"+r:""),onClick:function(){return n.setState((function(){return{active:t}}))},children:[i," ",l||""]},s)})),i({className:"reset tooltip",enabled:!0,onClick:function(){n.setState({filterBoxVisible:!0})}})]}),(0,j.jsx)("div",{className:"route-container",children:(0,j.jsxs)(g.rs,{children:[(0,j.jsx)(g.AW,{exact:!0,path:"/",children:(0,j.jsx)(Qe,{tools:this.state.tools,tableHeader:this.tableHeader,version:this.props.data.version,selectColumn:this.toggleSelectColumns,stats:this.stats,onStatsReady:this.props.onStatsReady,switchToQuantile:this.switchToQuantile,tableData:this.state.tableData,hiddenCols:this.state.hiddenCols,filtered:this.state.filtered.length>0})}),(0,j.jsx)(g.AW,{path:"/table",children:(0,j.jsx)(je,{tableData:this.state.tableData,tools:this.state.tools,selectColumn:this.toggleSelectColumns,filterPlotData:this.filterPlotData,filters:this.state.filtered,toggleLinkOverlay:this.toggleLinkOverlay,statusValues:this.statusValues,categoryValues:this.categoryValues,hiddenCols:this.state.hiddenCols,addTypeToFilter:this.addTypeToFilter})}),(0,j.jsx)(g.AW,{path:"/quantile",children:(0,j.jsx)(ht,{table:this.state.tableData,tools:this.state.tools,preSelection:this.state.quantilePreSelection,getRowName:this.getRowName,hiddenCols:this.state.hiddenCols,isFlexible:this.props.renderPlotsFlexible})}),(0,j.jsx)(g.AW,{path:"/scatter",children:(0,j.jsx)(dt,{table:this.state.tableData,columns:this.columns,tools:this.state.tools,getRowName:this.getRowName,hiddenCols:this.state.hiddenCols,isFlexible:this.props.renderPlotsFlexible})}),(0,j.jsx)(g.AW,{path:"/info",children:(0,j.jsx)(et,{version:this.props.data.version,selectColumn:this.toggleSelectColumns})})]})})]}),(0,j.jsxs)("div",{children:[this.state.showSelectColumns&&(0,j.jsx)(rt,{close:this.toggleSelectColumns,currColumns:this.columns,tableHeader:this.tableHeader,tools:this.state.tools,hiddenCols:this.state.hiddenCols,history:this.routerRef.current.history}),this.state.showLinkOverlay&&(0,j.jsx)(Yt,{close:this.toggleLinkOverlay,link:this.state.link,toggleLinkOverlay:this.toggleLinkOverlay})]})]})})}}]),n}(i.Component);var Ht=function(e){(0,a.Z)(n,e);var t=(0,o.Z)(n);function n(){return(0,s.Z)(this,n),t.apply(this,arguments)}return(0,l.Z)(n,[{key:"render",value:function(){return(0,j.jsx)("div",{className:"App",children:(0,j.jsx)("main",{children:(0,j.jsx)(Rt,{data:window.data,renderPlotsFlexible:!0,onStatsReady:this.props.onStatsReady})})})}}]),n}(i.Component),Tt=Ht;r.render((0,j.jsx)(Tt,{}),document.getElementById("root")),document.getElementById("msg-container").remove()},4654:function(){}},t={};function n(i){var r=t[i];if(void 0!==r)return r.exports;var s=t[i]={id:i,loaded:!1,exports:{}};return e[i].call(s.exports,s,s.exports,n),s.loaded=!0,s.exports}n.m=e,function(){var e=[];n.O=function(t,i,r,s){if(!i){var l=1/0;for(u=0;u<e.length;u++){i=e[u][0],r=e[u][1],s=e[u][2];for(var a=!0,o=0;o<i.length;o++)(!1&s||l>=s)&&Object.keys(n.O).every((function(e){return n.O[e](i[o])}))?i.splice(o--,1):(a=!1,s<l&&(l=s));if(a){e.splice(u--,1);var c=r();void 0!==c&&(t=c)}}return t}s=s||0;for(var u=e.length;u>0&&e[u-1][2]>s;u--)e[u]=e[u-1];e[u]=[i,r,s]}}(),n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,{a:t}),t},n.d=function(e,t){for(var i in t)n.o(t,i)&&!n.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},n.g=function(){if("object"===typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"===typeof window)return window}}(),n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.nmd=function(e){return e.paths=[],e.children||(e.children=[]),e},function(){var e={179:0};n.O.j=function(t){return 0===e[t]};var t=function(t,i){var r,s,l=i[0],a=i[1],o=i[2],c=0;if(l.some((function(t){return 0!==e[t]}))){for(r in a)n.o(a,r)&&(n.m[r]=a[r]);if(o)var u=o(n)}for(t&&t(i);c<l.length;c++)s=l[c],n.o(e,s)&&e[s]&&e[s][0](),e[s]=0;return n.O(u)},i=self.webpackChunkbenchexec_react_table=self.webpackChunkbenchexec_react_table||[];i.forEach(t.bind(null,0)),i.push=t.bind(null,i.push.bind(i))}();var i=n.O(void 0,[216],(function(){return n(7415)}));i=n.O(i)}();
\ No newline at end of file
+!function(){var e={7415:function(e,t,n){"use strict";var i=n(7313),r=n(1168),s=n(5671),l=n(3144),a=n(136),o=n(1129),c=n(1413),u=n(3433),d=n(9439),h=n(8303),g=n(3830),f=n(7762),p=n(4942),m=n(5110),v=n(8567),I=n(5987),b=n(4506),C=n(2229),x=n.n(C),y=n(1969),Z=n(1875),j=n(6417),A=["ids"],F=function(e){(0,a.Z)(n,e);var t=(0,o.Z)(n);function n(e){var r;return(0,s.Z)(this,n),(r=t.call(this,e)).childRef=i.createRef(),r}return(0,l.Z)(n,[{key:"render",value:function(){var e=this;return(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)("span",{ref:this.childRef,children:this.props.children}),(0,j.jsx)("button",{title:"Copy to clipboard",style:{margin:"1ex"},onClick:function(){x()(e.childRef.current.innerText,{format:"text/plain"})},children:(0,j.jsx)(y.G,{icon:Z.kZ_})})]})}}]),n}(i.Component),W="##########",N=function(e){return"count"===e.type||"measure"===e.type},B=function(e){return void 0===e||null===e},G=function(e,t){return B(e)||B(e.raw)?t:e.raw},w=function(e,t){var n=G(e,"").toLowerCase(),i=G(t,"").toLowerCase();return""===n?1:""===i?-1:n>i?1:n<i?-1:0},Y=function(e){return 0===e||200===e},S=function(e,t){var n,i=[],r=(0,f.Z)(t);try{for(r.s();!(n=r.n()).done;){var s=n.value;s!==e&&i.push(s)}}catch(l){r.e(l)}finally{r.f()}return i},V=function(e,t,n){var i=e.max_width;return t&&(i=Math.max(i,t)),n&&(i=Math.min(i,n)),i||(i=10),8*i+20},k=function(e,t,n){var i=function(e,t){var n,i=t,r=(0,f.Z)(e);try{for(r.s();!(n=r.n()).done;)if(i=i[n.value],B(i))return}catch(s){r.e(s)}finally{r.f()}return i}(e,n);return void 0===i?t:i},R=function(e){return e.unit?(0,j.jsxs)(j.Fragment,{children:[e.display_title,(0,j.jsx)("br",{}),"(".concat(e.unit,")")]}):e.display_title},H=function(e){var t=e.tool,n=e.date,i=e.niceName;return"".concat(t," ").concat(n," ").concat(i)},T=["#19CDD7","#DDB27C","#88572C","#FF991F","#F15C17","#223F9A","#DA70BF","#125C77","#4DC19C","#776E57","#12939A","#17B8BE","#F6D18A","#B7885E","#FFCB99","#F89570","#829AE3","#E79FD5","#1E96BE","#89DAC1","#B3AD9E"],X=function(e){var t=(e||decodeURI(document.location.href)).split("?"),n=t.length>1?t.slice(1).join("?"):void 0;if(void 0===n||0===n.length)return{};var i,r=n.split("&").map((function(e){return e.split("=")})),s={},l=(0,f.Z)(r);try{for(l.s();!(i=l.n()).done;){var a=(0,b.Z)(i.value),o=a[0],c=a.slice(1);s[o]=c.join("=")}}catch(u){l.e(u)}finally{l.f()}return s},K=function(e){return Object.keys(e).filter((function(t){return void 0!==e[t]&&null!==e[t]})).map((function(t){return"".concat(t,"=").concat(e[t])})).join("&")},L=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=X(e),i=(0,c.Z)((0,c.Z)({},n),t),r=K(i),s=e.split("?")[0];return r.length>0?"".concat(s,"?").concat(r):s},O=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=L(document.location.href,e);t&&t.push&&t.push(n),document.location.href=n},U=function(e){for(var t=[],n=0,i=Object.entries(e);n<i.length;n++){var r=(0,d.Z)(i[n],2),s=r[0],l=r[1];t.push("".concat(s,"(").concat(l.map(escape).join(","),")"))}return t.join(",")},D=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],i={};if(e.length>Math.floor(t.length/2)){var r,s=[],l=(0,f.Z)(t);try{for(l.s();!(r=l.n()).done;){var a=r.value;e.includes(a)||s.push(n?a.trim():a)}}catch(o){l.e(o)}finally{l.f()}i.notIn=s}else i.in=e.map((function(e){return n?e.trim():e}));return U(i)};function E(e,t,n,i,r){var s=[],l=e.statusValues,a=e.categoryValues,o=t[n][i],c=r[n][i],u=!!l,d=u&&l.length!==o.length,h=!!a,g=h&&a.length!==c.length;if(u){if(d){var f=D(l,o);s.push("status(".concat(f,")"))}h||s.push("category(empty())")}if(h&&(u||s.push("status(empty())"),g)){var p=D(a,c,!0);s.push("category(".concat(p,")"))}return s.join(",")}var P,M=function(e){if("string"!==typeof e)throw new Error("Invalid value type for converting to RegExp");return new RegExp(e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),"ui")},J=function(e){if("string"!==typeof e)throw new Error("Invalid filter ID");var t=e.split("_");if(t.length>3)throw new Error("Invalid filter ID");return{tool:t[0],name:t[1],column:t[2]}},z=function(e){var t,n={},i=0,r="",s=(0,f.Z)(e);try{for(s.s();!(t=s.n()).done;){var l=t.value;if("("!==l){if(")"!==l)0!==i||","!==l?r+=l:r="";else if(r+=l,0===--i){var a=r.indexOf("("),o=r.substr(0,a),c=r.substr(a+1,r.length-1-(a+1));n[o]=c}}else r+=l,i++}}catch(u){s.e(u)}finally{s.f()}return n},_=function(e,t,n,i,r){return"values"===e?[{values:t.split(",").map(unescape)}]:"value"===e?[{value:unescape(t)}]:"status"===e||"category"===e?function(e,t,n,i,r){for(var s=z(t),l=[],a=0,o=Object.entries(s);a<o.length;a++){var c=(0,d.Z)(o[a],2),h=c[0],g=c[1];if("in"===h){var p=g.split(",").map(unescape);"category"===e&&(p=p.map((function(e){return"".concat(e," ")}))),l.push.apply(l,(0,u.Z)(p.map((function(e){return{value:e}}))))}if("notIn"===h){var m=g.split(",").map(unescape),v=[];if("category"===e){m=m.map((function(e){return"".concat(e," ")}));var I,b=(0,f.Z)(i[r]);try{for(b.s();!(I=b.n()).done;){var C=I.value;m.includes(C)||v.push({value:C})}}catch(j){b.e(j)}finally{b.f()}}else{var x,y=(0,f.Z)(n[r]);try{for(y.s();!(x=y.n()).done;){var Z=x.value;m.includes(Z)||v.push({value:Z})}}catch(j){y.e(j)}finally{y.f()}}l.push.apply(l,v)}}return l}(e,t,n,i,r):void 0},Q=function(e){var t=e.categoryValues,n=e.statusValues;return function(e){for(var i=z(e),r=[],s=0,l=Object.entries(i);s<l.length;s++){var a=(0,d.Z)(l[s],2),o=a[0],h=a[1];if("id"!==o)if("id_any"!==o)for(var g=o,p=z(h),m={},v=0,I=Object.entries(p);v<I.length;v++){for(var b=(0,d.Z)(I[v],2),C=b[0],x=b[1],y=C.split("*"),Z=(0,d.Z)(y,2),j=Z[0],A=Z[1],F="".concat(g,"_").concat(unescape(A),"_").concat(j),W=m[F]||[],N=z(x),B=0,G=Object.entries(N);B<G.length;B++){var w=(0,d.Z)(G[B],2),Y=w[0],S=w[1];W.push.apply(W,(0,u.Z)(_(Y,S,n[g],t[g],j)))}for(var V=!1,k=!1,R=0,H=Object.keys(N);R<H.length;R++){var T=H[R];"status"===T?V=!0:"category"===T&&(k=!0)}(V&&!k||!V&&k)&&(V?W.push.apply(W,(0,u.Z)(t[g][j].map((function(e){return{value:e}})))):W.push.apply(W,(0,u.Z)(n[g][j].map((function(e){return{value:e}})))));var X,K=(0,f.Z)(W);try{for(K.s();!(X=K.n()).done;){var L=X.value;r.push((0,c.Z)({id:F},L))}}catch(U){K.e(U)}finally{K.f()}}else r.push((0,c.Z)({id:"id"},z(h)));else{var O=z(h);r.push((0,c.Z)({id:"id"},_("values",O.values)[0]))}}return r}},q=function(e,t){var n=function(e){var t=e.statusValues,n=e.categoryValues;return function(e){var i,r={},s=[],l=(0,f.Z)(e);try{for(l.s();!(i=l.n()).done;){var a=i.value,o=a.id,c=a.value,u=a.values,h=a.isTableTabFilter;if("id"!==o){var g=J(o),p=g.tool,m=g.name,v=g.column,b=r[p]||{},C=b[v]||{name:escape(m)};if(t[p][v]||n[p][v])if(c.endsWith(" ")){var x=C.categoryValues||[];x.push(c),C.categoryValues=x}else{var y=C.statusValues||[];y.push(c),C.statusValues=y}else C.value=c;b[v]=C,r[p]=b}else u&&u.length>0?r.ids={values:u.map((function(e){return e||""}))}:h&&s.push({id:o,value:c})}}catch(K){l.e(K)}finally{l.f()}var Z=r.ids,j=(0,I.Z)(r,A),F=[];Z&&F.push("id(values(".concat(Z.values.map(escape).join(","),"))")),s&&s.forEach((function(e){F.push("id_any(value(".concat(e.value,"))"))}));for(var W=0,N=Object.entries(j);W<N.length;W++){for(var B=(0,d.Z)(N[W],2),G=B[0],w=B[1],Y=[],S=0,V=Object.entries(w);S<V.length;S++){var k=(0,d.Z)(V[S],2),R=k[0],H=k[1],T="".concat(R,"*").concat(H.name,"*"),X=void 0;""!==(X=H.statusValues||H.categoryValues?E(H,t,G,R,n):"value(".concat(escape(H.value),")"))&&Y.push("".concat(T,"(").concat(X,")"))}Y.length>0&&F.push("".concat(G,"(").concat(Y.join(","),")"))}return F.join(",")}}({statusValues:e,categoryValues:t});return function(e,t){if(!e)return O({filter:void 0},t);var i=n(e);return O(i?{filter:i}:{filter:void 0},t)}},$="&#x2008;",ee="&#x2007;",te=function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"Unknown";(0,s.Z)(this,e),this._defaultOptions={whitespaceFormat:!1,html:!1,leadingZero:!0,additionalFormatting:function(e){return e}},this.significantDigits=t,this.maxPositiveDecimalPosition=-1,this.maxNegativeDecimalPosition=-1,this.name=n}return(0,l.Z)(e,[{key:"addDataItem",value:function(e){var t=this.format(e).split(/\.|,/),n=(0,d.Z)(t,2),i=n[0],r=n[1];this.maxPositiveDecimalPosition=Math.max(this.maxPositiveDecimalPosition,i&&"0"!==i?i.length:0),this.maxNegativeDecimalPosition=Math.max(this.maxNegativeDecimalPosition,r?r.length:0)}},{key:"format",value:function(e){var t=e.toString(),n="",i="",r=0,s=0,l=!1,a=!1;if("NaN"===t)return"NaN";if(t.endsWith("Infinity"))return t.replace("Infinity","Inf");if(t.includes("e")){var o=t.split("-"),c=(0,d.Z)(o,2),u=c[0],h=c[1],g=0;u.includes(".")&&(g=1),t=Number(e).toFixed(Number(h)+g)}for(var f=t.replace(/,/,".").indexOf(".");s<this.significantDigits-1&&t.length>r;){var p=t[r];if("."===p||","===p)n+=".",a=!0;else{if(!l){if("0"===p){r+=1,a&&(n+=p);continue}l=!0}n+=p,s+=1}r+=1}if(i=t.substring(r),""===n&&""===i&&(n=t),"."===n[0]&&(n="0".concat(n)),""!==i){var m="."===i[0];if(i=i.replace(/\./,""),i="".concat(i[0],".").concat(i.substr(1)),i=Math.round(Number(i)),(i=isNaN(i)?"":i.toString()).length>1&&"."!==i[0]){var v=i[0];i=i[1];for(var I=n.length,b=n.split("."),C=(0,d.Z)(b,2)[1],x=C&&C.length-1||0,y=C?"0.":"",Z=x;Z>0;)y+="0",Z-=1;for(n=function(e,t){var n=e,i=t;if("string"===typeof e&&(n=Number(e)),"string"===typeof t&&(i=Number(t)),Number.isInteger(n)||Number.isInteger(i))return n+i;var r=e.toString(),s=r.length,l=r.indexOf("."),a=t.toString(),o=a.length,c=a.indexOf("."),u=Math.max(s-l,o-c)-1;return Number((n+i).toFixed(u))}(n,y+=v).toFixed(x+1).substr(0,I);n.length<I;)n+="0"}var j=f;for(m&&(i=".".concat(i)),-1===f&&(j=t.length);n.length+i.length<j;)i+="0"}return"".concat(n).concat(i)}},{key:"build",value:function(){var e=this;return function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=(0,c.Z)((0,c.Z)({},e._defaultOptions),n),r=i.whitespaceFormat,s=i.html,l=i.leadingZero,a=i.additionalFormatting,o={significantDigits:e.significantDigits,maxDecimalInputLength:e.maxNegativeDecimalPosition};if(B(e.significantDigits))return a(t.toString(),o);var u=e.format(t);if("NaN"===(u=a(u,o)))return u;if(r){var h=s?$:" ",g=u.split(/\.|,/),f=(0,d.Z)(g,2),p=f[0],m=f[1];"0"!==p||l||(p=m?"":"0"),p=p||"";for(var v=(m=m||"")?".":h;m.length<e.maxNegativeDecimalPosition;)m+=" ";return s&&(p=p.replace(/ /g,ee),m=m.replace(/ /g,ee)),"".concat(p).concat(m?v:"").concat(m)}return!l&&u.startsWith("0.")?u.substr(1):u}}}]),e}(),ne=function(e){var t=X(),n=[];t.hidden&&(n=t.hidden.split(",").filter((function(t){return Number.isInteger(parseInt(t))&&e.some((function(e){return e.toolIdx===parseInt(t)}))})).map((function(e){return parseInt(e)})));var i={};return Object.keys(t).filter((function(e){return/hidden[0-9]+/.test(e)})).forEach((function(n){var r=parseInt(n.replace("hidden","")),s=e.find((function(e){return e.toolIdx===r}));Number.isInteger(r)&&s&&(i[r]=t[n].split(",").filter((function(e){return Number.isInteger(parseInt(e))&&s.columns.some((function(t){return t.colIdx===parseInt(e)}))})).map((function(e){return parseInt(e)})))})),n.forEach((function(t){i[t]=e.find((function(e){return e.toolIdx===t})).columns.map((function(e){return e.colIdx}))})),e.forEach((function(e){i[e.toolIdx]||(i[e.toolIdx]=[])})),i},ie=function(e,t){var n,i=e.find((function(e){return n=e.columns.find((function(n){return"status"!==n.type&&!t[e.toolIdx].includes(n.colIdx)}))}));return n||(i=e.find((function(e){return n=e.columns.find((function(n){return"status"===n.type&&!t[e.toolIdx].includes(n.colIdx)}))}))),i&&n?[i.toolIdx,n.colIdx]:[void 0,void 0]},re=function(e,t){var n,i={},r=(0,f.Z)(e);try{for(r.s();!(n=r.n()).done;){i[n.value]=!0}}catch(o){r.e(o)}finally{r.f()}var s,l=(0,f.Z)(t);try{for(l.s();!(s=l.n()).done;){var a=s.value;if(B(i[a]))return!1}}catch(o){l.e(o)}finally{l.f()}return!0},se=function(e){var t=e.toString().split(/,|\./),n=(0,d.Z)(t,2)[1];if(B(n)||0===n.length)return 1;for(var i=".",r=0;r<n.length-1;r+=1)i+="0";return i+="1"},le=function(e){var t=[];return(e=e.filter((function(e,t){return t%2===0&&0!==t}))).forEach((function(e){return t.push(e.columns.filter((function(e){return e.hidden})).map((function(e){return e.id})))})),t.flat()},ae=["handler"],oe=["column","title","children"],ce=["runSet"],ue=["cell","href","toggleLinkOverlay","force"],de=function(e){var t=e.handler,n=(0,I.Z)(e,ae);return(0,j.jsx)("span",(0,c.Z)((0,c.Z)({onClick:t,title:"",className:"selectColumns"},n),{},{children:"Click here to select columns"}))},he=function(e){var t=e.column,n=e.title,i=void 0===n?"Click here to sort. Hold shift to multi-sort":n,r=e.children,s=(0,I.Z)(e,oe);return(0,j.jsx)("div",(0,c.Z)((0,c.Z)({title:i},s),{},{children:r||R(t)}))},ge=function(e){var t=e.runSet,n=(0,I.Z)(e,ce);return(0,j.jsx)("span",(0,c.Z)((0,c.Z)({className:"header__tool-infos"},n),{},{title:H(t),children:H(t)}))},fe=function(e){var t=e.cell,n=e.href,i=void 0===n?t.value.href:n,r=e.toggleLinkOverlay,s=e.force,l=void 0!==s&&s,a=(0,I.Z)(e,ue),o=t.value.html,u=o?void 0:t.value.raw;return l||u||o?i?(0,j.jsx)("a",(0,c.Z)((0,c.Z)({href:i,onClick:function(e){return r(e,i)},dangerouslySetInnerHTML:o?{__html:o}:void 0},a),{},{children:u})):(0,j.jsx)("div",(0,c.Z)((0,c.Z)({dangerouslySetInnerHTML:o?{__html:o}:void 0},a),{},{children:u})):null},pe=function(e){return Object.freeze({Header:"",accessor:"separator"+e,className:"separator",columns:[{accessor:"separator"+e,className:"separator",width:2,minWidth:2}]})},me=function(e,t,n){return[pe(t),{Header:(0,j.jsx)(ge,{runSet:e}),columns:e.columns.map((function(e,i){return n(t,e,i)})),id:"runset-column"}]},ve=n(1330),Ie=n.n(ve),be=["distincts","categories","statuses"],Ce="empty_row",xe=function(e){return function(t){var n=(0,u.Z)(t);if(e.diff&&(n=n.filter((function(t){var n,i=(0,f.Z)(e.diff);try{for(i.s();!(n=i.n()).done;){var r,s=n.value.col,l={},a=(0,f.Z)(t.results);try{for(a.s();!(r=a.n()).done;){var o=r.value.values[s].raw;l[o]||(l[o]=!0)}}catch(c){a.e(c)}finally{a.f()}if(1===Object.keys(l).length)return!1}}catch(c){i.e(c)}finally{i.f()}return!0}))),!B(e.id)){var i=e.id,r=i.value,s=i.values;if(r){var l=M(r);n=n.filter((function(e){return e.id.some((function(e){return e===r||l.test(e)}))}))}else{var a=s.map((function(e){return{filterRegex:M(e),filterValue:e}}));n=n.filter((function(e){var t=e.id;return a.every((function(e,n){var i=e.filterRegex,r=e.filterValue,s=t[n];return!(!B(r)&&""!==r)||!B(s)&&""!==s&&(s===r||i.test(s))}))}))}}var o=n.filter((function(t){for(var n in function(e,t){return Object.keys(t).filter((function(t){return!e.includes(t)})).reduce((function(e,n){return e[n]=t[n],e}),{})}(["diff","id"],e))for(var i in e[n]){var r,s=!1,l=!1,a=!1,o=(0,f.Z)(e[n][i]);try{for(o.s();!(r=o.n()).done;){var c=r.value,u=c.value,d=c.min,h=c.max,g=c.category,p=c.status;if(B(d)||B(h))if(B(g))if(B(p)){var m=t.results[n].values[i].raw;if(B(m)){s=!1;continue}s=s||u===m||m.includes(u)}else{var v="empty"===t.results[n].category&&p===Ce;a=t.results[n].values[i].raw===p||a||v,s=l&&a}else s=(l=t.results[n].category===g||l)&&a;else{var I=t.results[n].values[i].raw;if(B(I)){s=!1;continue}var b=Number(I);s=s||b>=d&&b<=h}if(s)break}}catch(C){o.e(C)}finally{o.f()}if(!s)return!1}return!0}));return o}},ye=(P={},(0,p.Z)(P,"empty","Empty rows"),(0,p.Z)(P,"aborted","\u2014"),P),Ze=[50,100,250,500,1e3,2500],je=function(){var e=X();return e.sort?e.sort.split(";").map((function(e){var t=e.split(",");return{id:t[0],desc:"desc"===t[1]}})):[]},Ae=function(e){var t=(0,i.useState)(!0),n=(0,d.Z)(t,2),r=n[0],s=n[1],l=(0,i.useState)(be()),a=(0,d.Z)(l,2),o=a[0],h=a[1],p=(0,i.useState)({}),I=(0,d.Z)(p,2),b=I[0],C=I[1],x=(0,i.useState)(!1),y=(0,d.Z)(x,2),Z=y[0],A=y[1],F=(0,g.k6)(),Y=function(t){"id"===t.id&&(t.isTableTabFilter=!0);var n=[].concat((0,u.Z)(e.filters.filter((function(e){return e.id!==t.id}))),[t]);n=n.filter((function(e){return""!==e.value})),e.addTypeToFilter(n);var i=[];if("status"===t.type){var r=J(t.id),s=r.tool,l=r.name,a=r.column,o=t.value;if("all"===o.trim())i=function(t){var n,i=t.tool,r=t.name,s=t.column,l=[],a=(0,f.Z)(e.statusValues[i][s]);try{for(a.s();!(n=a.n()).done;){var o=n.value;l.push({id:"".concat(i,"_").concat(r,"_").concat(s),value:o})}}catch(g){a.e(g)}finally{a.f()}var c,u=(0,f.Z)(e.categoryValues[i][s]);try{for(u.s();!(c=u.n()).done;){var d=c.value,h="".concat(d," ");l.push({id:"".concat(i,"_").concat(r,"_").concat(s),value:h})}}catch(g){u.e(g)}finally{u.f()}return l}({tool:s,name:l,column:a}),n=n.filter((function(e){var n=e.id,i=e.value;return!(n===t.id&&"all"===i.trim())}));else i=function(t){var n,i=t.tool,r=t.name,s=t.column,l=t.isCategory,a=l?e.statusValues:e.categoryValues,o=[],c=(0,f.Z)(a[i][s]);try{for(c.s();!(n=c.n()).done;){var u=n.value;o.push({id:"".concat(i,"_").concat(r,"_").concat(s),value:"".concat(u).concat(l?"":" ")})}}catch(d){c.e(d)}finally{c.f()}return o}({tool:s,name:l,column:a,isCategory:" "===o[o.length-1]})}e.addTypeToFilter(i),e.filterPlotData([].concat((0,u.Z)(n),(0,u.Z)(i)),!0)};function S(e){var t=e.column,n=t.id,r=(t.filter,e.currFilters),s=n+"_filter",l=r.find((function(e){return e.id===n})),a=l?l.value:"",o=(0,i.useState)(""),c=(0,d.Z)(o,2),u=c[0],h=c[1],g=(0,i.useState)(a),f=(0,d.Z)(g,2),p=f[0],m=f[1],v="id"===n&&Z?"To edit, please clear task filter in the sidebar":"text";return(0,j.jsx)("input",{id:s,className:"filter-field",placeholder:v,defaultValue:p,onChange:function(e){var t=e.target.value;m(t),clearTimeout(u),h(setTimeout((function(){Y({id:n,value:t}),document.getElementById(s).focus()}),500))},disabled:"id"===n&&Z,type:"search"})}function R(t){var n=t.column,i=n.id,r=(n.filter,t.runSetIdx),s=t.columnIdx,l=e.categoryValues[r][s],a=function(e){var t=e.categoryFilters,n=e.statusFilters,i=e.categoryFilterValues,r=e.statusFilterValues,s=[];return re(t,i)||(s=t),re(n,r)||(s=[].concat((0,u.Z)(s),(0,u.Z)(n))),s}({categoryFilters:k([r,"categories"],[],o),statusFilters:k([r,s],[],o),categoryFilterValues:l.map((function(e){return"".concat(e," ")})),statusFilterValues:e.statusValues[r][s]}),c=0===a.length,d=a.length>1||a[0]===W,h=a&&a[0],g=(c?"all ":d&&"multiple")||h;return(0,j.jsxs)("select",{className:"filter-field",onChange:function(e){return Y({id:i,value:e.target.value})},value:g,children:[d&&(0,j.jsx)("option",{value:"multiple",disabled:!0,children:a.map((function(e){return e.trim()})).filter((function(e){return"all"!==e&&e!==W})).join(", ")||"No filters selected"}),(0,j.jsx)("option",{value:"all ",children:"Show all"}),l.filter((function(e){return e in ye})).map((function(e){return(0,j.jsx)("option",{value:e+" ",children:ye[e]},e)})),(0,j.jsx)("optgroup",{label:"Category",children:l.filter((function(e){return!(e in ye)})).sort().map((function(e){return(0,j.jsx)("option",{value:e+" ",className:e,children:e},e)}))}),(0,j.jsx)("optgroup",{label:"Status",children:e.statusValues[r][s].filter((function(e){return e!==Ce})).sort().map((function(e){return(0,j.jsx)("option",{value:e,children:e},e)}))})]})}function H(e){var t=e.column,n=t.id,r=(t.filter,e.currFilters),s=n+"_filter",l=r.find((function(e){return e.id===n})),a=l?l.value:"",o=(0,i.useState)(""),c=(0,d.Z)(o,2),u=c[0],h=c[1],g=(0,i.useState)(a),f=(0,d.Z)(g,2),p=f[0],m=f[1];return(0,j.jsx)("input",{id:s,className:"filter-field",placeholder:"Min:Max",defaultValue:p,onChange:function(e){var t=e.target.value;m(t),clearTimeout(u),h(setTimeout((function(){Y({id:n,value:t}),document.getElementById(s).focus()}),500))},type:"search",pattern:"([+-]?[0-9]*(\\.[0-9]*)?)(:[+-]?[0-9]*(\\.[0-9]*)?)?"})}var T=(0,i.useCallback)((function(t){return(0,j.jsx)(S,(0,c.Z)((0,c.Z)({disableTaskText:Z},t),{},{currFilters:e.filters}))}),[Z,e.filters]),K=(0,i.useCallback)((function(t){return(0,j.jsx)(H,(0,c.Z)((0,c.Z)({},t),{},{currFilters:e.filters}))}),[e.filters]),L=(0,i.useMemo)((function(){var t=function(t,n,i){if("status"===n.type)return function(t,n,i){var r="".concat(t,"_").concat(n.display_title,"_").concat(i),s=b[r];return{id:r,Header:(0,j.jsx)(he,{column:n}),className:"reg-column",hidden:e.hiddenCols[t].includes(n.colIdx),minWidth:50,width:s||V(n,10),accessor:function(e){return e.results[t].values[i]},Cell:function(n){var i,r=n.row.original.results[t].category,s=n.row.original.results[t].href;return"aborted"===r?(s=void 0,i="Result missing because run was aborted or not executed"):"empty"===r?i="Result missing because task was not part of benchmark set":s&&(i="Click here to show output of tool"),(0,j.jsx)(fe,{cell:n,href:s,className:r,toggleLinkOverlay:e.toggleLinkOverlay,title:i,force:!0})},sortType:function(e,t,n,i){return w(e.values[n],t.values[n])},filter:function(e){return e},Filter:function(e){return(0,j.jsx)(R,(0,c.Z)((0,c.Z)({},e),{},{runSetIdx:t,columnIdx:i}))}}}(t,n,i);var r="".concat(t,"_").concat(n.display_title,"_").concat(i),s=b[r],l=N(n)?K:T;return{id:r,Header:(0,j.jsx)(he,{column:n}),className:"reg-column",hidden:e.hiddenCols[t].includes(n.colIdx),minWidth:50,width:s||V(n),accessor:function(e){return e.results[t].values[i]},Cell:function(t){return(0,j.jsx)(fe,{cell:t,toggleLinkOverlay:e.toggleLinkOverlay})},filter:function(e){return e},Filter:l,sortType:function(e,t,i,r){return N(n)?(s=e.values[i],l=t.values[i],G(s,1/0)-G(l,1/0)):w(e.values[i],t.values[i]);var s,l}}},n=e.tools.map((function(e,n){return me(e,n,t)})).flat();return[{Header:function(){return(0,j.jsx)("div",{className:"fixed-task-header",children:(0,j.jsx)("form",{children:(0,j.jsxs)("label",{title:"Fix the first column",children:["Fixed task:",(0,j.jsx)("input",{name:"fixed",type:"checkbox",checked:r,onChange:function(e){var t=e.target;return s(t.checked)}})]})})})},className:"fixed-task",id:"task-id-column",sticky:r?"left":"",columns:[(0,c.Z)((0,c.Z)({width:.3*window.innerWidth,minWidth:230},b.id&&{width:b.id}),{},{Header:(0,j.jsx)(he,{children:(0,j.jsx)(de,{handler:e.selectColumn})}),accessor:"id",Cell:function(t){var n=t.row.original.id.map((function(e){return(0,j.jsx)("span",{className:"row_id",children:e},e)})),i=t.row.original.href;return i?(0,j.jsx)("a",{className:"row__name--cellLink",href:i,title:"Click here to show source code",onClick:function(t){return e.toggleLinkOverlay(t,i)},children:n},i):(0,j.jsx)("span",{title:"This task has no associated file",children:n})},Filter:T,sortType:function(e,t,n,i){var r=Array.isArray(e.values[n])?e.values[n].join():e.values[n],s=Array.isArray(t.values[n])?t.values[n].join():t.values[n];return r>s?1:r<s?-1:0}})]}].concat(n)}),[b,r,e,T,K]),U=(0,i.useMemo)((function(){return e.tableData}),[e.tableData]),D=(0,i.useMemo)((function(){return{Filter:(0,j.jsx)(j.Fragment,{})}}),[]),E=(0,m.useTable)({columns:L,data:U,defaultColumn:D,initialState:{sortBy:je(),pageIndex:parseInt(X().page)-1||0,hiddenColumns:le(L),pageSize:parseInt(X().pageSize)||250}},m.useFilters,m.useFlexLayout,m.useResizeColumns,m.useSortBy,m.usePagination,v.useSticky),P=E.getTableProps,M=E.getTableBodyProps,z=E.headerGroups,_=(E.rows,E.prepareRow),Q=E.page,q=E.canPreviousPage,$=E.canNextPage,ee=E.pageOptions,te=E.pageCount,ne=E.gotoPage,ie=E.nextPage,se=E.previousPage,ae=E.setPageSize,oe=E.setSortBy,ce=E.state,ue=ce.pageIndex,ge=ce.pageSize,pe=ce.sortBy,ve=ce.columnResizing;function be(){var t,n={},i=(0,f.Z)(e.filters);try{for(i.s();!(t=i.n()).done;){var r=t.value,s=r.value,l=r.id,a=J(l),o=a.tool,c=a.column,u=n[o]||{};if("string"===typeof s&&" "===s[s.length-1]){var d=u.categories||[];d.push(s),u.categories=d}else{var h=u[c]||[];h.push(s),u[c]=h}n[o]=u}}catch(g){i.e(g)}finally{i.f()}return n}(0,i.useEffect)((function(){var e=pe.map((function(e){return e.id+","+(e.desc?"desc":"asc")})).join(";"),t=e.length?e:void 0;O({sort:t})}),[pe]),(0,i.useEffect)((function(){O({pageSize:250!==ge?ge:void 0})}),[ge]),(0,i.useEffect)((function(){var e=ue&&0!==ue?Number(ue)+1:void 0;O({page:e})}),[ue]),(0,i.useEffect)((function(){var e=ve.columnWidths;!ve.isResizingColumn&&Object.keys(e).length>0&&C((0,c.Z)((0,c.Z)({},b),e))}),[ve,b]),(0,i.useEffect)((function(){var t,n=(0,f.Z)(e.filters);try{for(n.s();!(t=n.n()).done;){var i=t.value,r=i.values;"id"===i.id&&A(!B(r))}}catch(l){n.e(l)}finally{n.f()}var s=be();Ie()(s,o)||h(s),ue>=te&&ne(te-1)}),[e.filters,o,ne,ue,te]),(0,i.useEffect)((function(){return F.listen((function(e){ae(X().pageSize||250),oe(je()),ne(X().page-1||0)}))}),[F,ne,ae,oe]);var xe=function(e){return(0,j.jsx)("div",(0,c.Z)((0,c.Z)({className:"tr headergroup"},e.getHeaderGroupProps()),{},{children:e.headers.map((function(e){return(0,j.jsxs)("div",(0,c.Z)((0,c.Z)({},e.getHeaderProps({className:"th header ".concat(e.headers?"outer ":"").concat(e.className)})),{},{children:[(0,j.jsx)("div",(0,c.Z)((0,c.Z)({},e.canSort&&(!e.className||!e.className.includes("separator"))&&e.getSortByToggleProps({className:"header-sort-container clickable ".concat(e.isSorted?e.isSortedDesc?"sorted-desc ":"sorted-asc ":"")})),{},{children:e.render("Header")})),(!e.className||!e.className.includes("separator"))&&(0,j.jsx)("div",(0,c.Z)((0,c.Z)({},e.getResizerProps()),{},{className:"resizer ".concat(e.isResizing?"isResizing":"")}))]}))}))}))};return(0,j.jsx)("div",{className:"main-table",children:(0,j.jsxs)("div",{className:"table sticky",children:[(0,j.jsx)("div",{className:"table-content",children:(0,j.jsxs)("div",(0,c.Z)((0,c.Z)({className:"table-container"},P()),{},{children:[function(e){var t=e[0],n=e.filter((function(e){return e.headers.some((function(e){return e.canFilter}))}));return(0,j.jsxs)("div",{className:"table-header",children:[xe(t),(0,j.jsxs)("div",{className:"shadow-container",children:[e.slice(1).map(xe),n.map((function(e){return(0,j.jsx)("div",(0,c.Z)((0,c.Z)({className:"tr headergroup filter"},e.getHeaderGroupProps()),{},{children:e.headers.map((function(e){return(0,j.jsx)("div",(0,c.Z)((0,c.Z)({},e.getHeaderProps({className:"th header filter ".concat(e.headers?"outer ":"").concat(e.className)})),{},{children:e.canFilter?e.render("Filter"):null}))}))}))}))]})]})}(z),(0,j.jsx)("div",(0,c.Z)((0,c.Z)({},M()),{},{className:"table-body body",children:Q.map((function(e){return _(e),(0,j.jsx)("div",(0,c.Z)((0,c.Z)({},e.getRowProps()),{},{className:"tr",children:e.cells.map((function(e){return(0,j.jsx)("div",(0,c.Z)((0,c.Z)({},e.getCellProps({className:"td "+(e.column.className||"")})),{},{children:e.render("Cell")}))}))}))}))}))]}))}),(0,j.jsxs)("div",{className:"pagination",children:[(0,j.jsxs)("div",{id:"pagination-previous",className:"pagination-container",children:[(0,j.jsx)("div",{onClick:function(){return se()},className:"pagination-element button".concat(q?"":" disabled"),children:"Previous"})," "]}),(0,j.jsxs)("div",{id:"pagination-center",className:"pagination-container",children:[(0,j.jsxs)("div",{id:"goto-page-element",className:"pagination-element",children:["Page",(0,j.jsx)("input",{"aria-label":"jump to page",type:"number",value:Number(ue)+1,onChange:function(e){return ne(Number(e.target.value)-1)}}),"of ",ee.length]}),(0,j.jsx)("div",{id:"set-page-element",className:"pagination-element",children:(0,j.jsx)("select",{value:ge,onChange:function(e){return ae(Number(e.target.value))},children:Ze.map((function(e){return(0,j.jsxs)("option",{value:e,children:[e," rows"]},e)}))})})]}),(0,j.jsxs)("div",{id:"pagination-next",className:"pagination-container",children:[(0,j.jsx)("div",{onClick:function(){return ie()},className:"pagination-element button".concat($?"":" disabled"),children:"Next"})," "]})]})]})})},Fe=n(4165),We=n(5861);n(9e3);var Ne=[],Be={},Ge=1,we=[{template:"data:text/plain;base64,Ly8gVGhpcyBmaWxlIGlzIHBhcnQgb2YgQmVuY2hFeGVjLCBhIGZyYW1ld29yayBmb3IgcmVsaWFibGUgYmVuY2htYXJraW5nOgovLyBodHRwczovL2dpdGh1Yi5jb20vc29zeS1sYWIvYmVuY2hleGVjCi8vCi8vIFNQRFgtRmlsZUNvcHlyaWdodFRleHQ6IDIwMTktMjAyMCBEaXJrIEJleWVyIDxodHRwczovL3d3dy5zb3N5LWxhYi5vcmc+Ci8vCi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wCgovLyBDT1BZIE9GIHV0aWxzLmpzLCBhcyBpbXBvcnRzIHdpbGwgbm90IHdvcmsgaGVyZQovKioKICogRnVuY3Rpb24gdG8gc2FmZWx5IGFkZCB0d28gbnVtYmVycyBpbiBhIHdheSB0aGF0IHNob3VsZCBtaXRpZ2F0ZSBlcnJvcnMKICogY2F1c2VkIGJ5IGluYWNjdXJhdGUgZmxvYXRpbmcgcG9pbnQgb3BlcmF0aW9ucyBpbiBqYXZhc2NyaXB0CiAqIEBwYXJhbSB7TnVtYmVyfFN0cmluZ30gYSAtIFRoZSBiYXNlIG51bWJlcgogKiBAcGFyYW0ge051bWJlcnxTdHJpbmd9IGIgLSBUaGUgbnVtYmVyIHRvIGFkZAogKgogKiBAcmV0dXJucyB7TnVtYmVyfSBUaGUgcmVzdWx0IG9mIHRoZSBhZGRpdGlvbgogKi8KY29uc3Qgc2FmZUFkZCA9IChhLCBiKSA9PiB7CiAgbGV0IGFOdW0gPSBhOwogIGxldCBiTnVtID0gYjsKCiAgaWYgKHR5cGVvZiBhID09PSAic3RyaW5nIikgewogICAgYU51bSA9IE51bWJlcihhKTsKICB9CiAgaWYgKHR5cGVvZiBiID09PSAic3RyaW5nIikgewogICAgYk51bSA9IE51bWJlcihiKTsKICB9CgogIGlmIChOdW1iZXIuaXNJbnRlZ2VyKGFOdW0pIHx8IE51bWJlci5pc0ludGVnZXIoYk51bSkpIHsKICAgIHJldHVybiBhTnVtICsgYk51bTsKICB9CgogIGNvbnN0IGFTdHJpbmcgPSBhLnRvU3RyaW5nKCk7CiAgY29uc3QgYUxlbmd0aCA9IGFTdHJpbmcubGVuZ3RoOwogIGNvbnN0IGFEZWNpbWFsUG9pbnQgPSBhU3RyaW5nLmluZGV4T2YoIi4iKTsKICBjb25zdCBiU3RyaW5nID0gYi50b1N0cmluZygpOwogIGNvbnN0IGJMZW5ndGggPSBiU3RyaW5nLmxlbmd0aDsKICBjb25zdCBiRGVjaW1hbFBvaW50ID0gYlN0cmluZy5pbmRleE9mKCIuIik7CgogIGNvbnN0IGxlbmd0aCA9IE1hdGgubWF4KGFMZW5ndGggLSBhRGVjaW1hbFBvaW50LCBiTGVuZ3RoIC0gYkRlY2ltYWxQb2ludCkgLSAxOwoKICByZXR1cm4gTnVtYmVyKChhTnVtICsgYk51bSkudG9GaXhlZChsZW5ndGgpKTsKfTsKCmNvbnN0IG1hdGhTdHJpbmdNYXggPSAoYSwgYikgPT4gewogIGNvbnN0IG51bUEgPSBOdW1iZXIoYSk7CiAgY29uc3QgbnVtQiA9IE51bWJlcihiKTsKICByZXR1cm4gbnVtQSA+IG51bUIgPyBhIDogYjsKfTsKCmNvbnN0IG1hdGhTdHJpbmdNaW4gPSAoYSwgYikgPT4gewogIGNvbnN0IG51bUEgPSBOdW1iZXIoYSk7CiAgY29uc3QgbnVtQiA9IE51bWJlcihiKTsKICByZXR1cm4gbnVtQSA8IG51bUIgPyBhIDogYjsKfTsKCi8qKgogKiBUaGlzIGZ1bmN0aW9uIGVpdGhlciBhZGRzIHR3byBudW1iZXJzIG9yIGluY3JlbWVudHMgdGhlIG51bWJlcgogKiBwYXNzZWQgaW4gdGhlIGZpcnN0IHBhcmFtZXRlciBpZiB0aGUgdHlwZSBpcyAic3RhdHVzIi4KICogSWYgdGhlIHNlY29uZCBwYXJhbWV0ZXIgaXMgbm90IGEgbnVtYmVyIGFuZCB0aGUgdHlwZSBpcyBub3Qgc3RhdHVzLAogKiB0aGUgZmlyc3QgcGFyYW1ldGVyIHdpbGwgYmUgcmV0dXJuZWQKICoKICogQHBhcmFtIHtOdW1iZXJ9IGEKICogQHBhcmFtIHsqfSBiCiAqIEBwYXJhbSB7U3RyaW5nfSB0eXBlCiAqLwpjb25zdCBtYXliZUFkZCA9IChhLCBiLCB0eXBlKSA9PiB7CiAgaWYgKE51bWJlcihiKSkgewogICAgcmV0dXJuIHNhZmVBZGQoYSwgYik7CiAgfQogIGlmICh0eXBlID09PSAic3RhdHVzIikgewogICAgcmV0dXJuIGEgKyAxOwogIH0KICByZXR1cm4gYTsKfTsKY29uc3QgcmVtb3ZlUm91bmRPZmYgPSAobnVtKSA9PiB7CiAgY29uc3Qgc3RyID0gbnVtLnRvU3RyaW5nKCk7CiAgaWYgKHN0ci5tYXRjaCgvXC4uKz8wezIsfVxkJC8pKSB7CiAgICByZXR1cm4gTnVtYmVyKHN0ci5zdWJzdHIoMCwgc3RyLmxlbmd0aCAtIDEpKTsKICB9CiAgcmV0dXJuIG51bTsKfTsKCmNvbnN0IGNhbGN1bGF0ZU1lYW4gPSAodmFsdWVzLCBhbGxJdGVtcykgPT4gewogIGNvbnN0IG51bU1pbiA9IE51bWJlcih2YWx1ZXMubWluKTsKICBjb25zdCBudW1NYXggPSBOdW1iZXIodmFsdWVzLm1heCk7CiAgaWYgKG51bU1pbiA9PT0gLUluZmluaXR5ICYmIG51bU1heCA9PT0gSW5maW5pdHkpIHsKICAgIHZhbHVlcy5hdmcgPSAiTmFOIjsKICB9IGVsc2UgaWYgKG51bU1pbiA9PT0gLUluZmluaXR5KSB7CiAgICB2YWx1ZXMuYXZnID0gIi1JbmZpbml0eSI7CiAgfSBlbHNlIGlmIChudW1NYXggPT09IEluZmluaXR5KSB7CiAgICB2YWx1ZXMuYXZnID0gIkluZmluaXR5IjsKICB9IGVsc2UgewogICAgdmFsdWVzLmF2ZyA9IHJlbW92ZVJvdW5kT2ZmKHZhbHVlcy5zdW0gLyBhbGxJdGVtcy5sZW5ndGgpOwogIH0KfTsKCmNvbnN0IGNhbGN1bGF0ZU1lZGlhbiA9ICh2YWx1ZXMsIGFsbEl0ZW1zKSA9PiB7CiAgaWYgKGFsbEl0ZW1zLmxlbmd0aCAlIDIgPT09IDApIHsKICAgIGNvbnN0IGlkeCA9IGFsbEl0ZW1zLmxlbmd0aCAvIDI7CiAgICB2YWx1ZXMubWVkaWFuID0KICAgICAgKE51bWJlcihhbGxJdGVtc1tpZHggLSAxXS5jb2x1bW4pICsgTnVtYmVyKGFsbEl0ZW1zW2lkeF0uY29sdW1uKSkgLyAyLjA7CiAgfSBlbHNlIHsKICAgIHZhbHVlcy5tZWRpYW4gPSBhbGxJdGVtc1tNYXRoLmZsb29yKGFsbEl0ZW1zLmxlbmd0aCAvIDIuMCldLmNvbHVtbjsKICB9Cn07CmNvbnN0IGNhbGN1bGF0ZVN0ZGV2ID0gKGhhc05lZ0luZiwgaGFzUG9zSW5mLCB2YXJpYW5jZSwgc2l6ZSkgPT4gewogIGlmIChoYXNOZWdJbmYgJiYgaGFzUG9zSW5mKSB7CiAgICByZXR1cm4gIk5hTiI7CiAgfQogIGlmIChoYXNOZWdJbmYgfHwgaGFzUG9zSW5mKSB7CiAgICByZXR1cm4gSW5maW5pdHk7CiAgfQogIHJldHVybiBNYXRoLnNxcnQodmFyaWFuY2UgLyBzaXplKTsKfTsKCmNvbnN0IHBhcnNlUHl0aG9uSW5maW5pdHlWYWx1ZXMgPSAoZGF0YSkgPT4KICBkYXRhLm1hcCgoaXRlbSkgPT4gewogICAgaWYgKGl0ZW0uY29sdW1uVHlwZSA9PT0gInN0YXR1cyIgfHwgIWl0ZW0uY29sdW1uLmVuZHNXaXRoKCJJbmYiKSkgewogICAgICByZXR1cm4gaXRlbTsKICAgIH0KICAgIC8vIFdlIGhhdmUgYSBweXRob24gSW5maW5pdHkgdmFsdWUgdGhhdCB3ZSB3YW50IHRvIHRyYW5zZmVyIHRvIGEgc3RyaW5nCiAgICAvLyB0aGF0IGNhbiBiZSBpbnRlcnByZXRlZCBhcyBhIEphdmFTY3JpcHQgSW5maW5pdHkgdmFsdWUKICAgIGl0ZW0uY29sdW1uID0gaXRlbS5jb2x1bW4ucmVwbGFjZSgiSW5mIiwgIkluZmluaXR5Iik7CiAgICByZXR1cm4gaXRlbTsKICB9KTsKCi8vIElmIGEgYnVja2V0IGNvbnRhaW5zIGEgTmFOIHZhbHVlLCB3ZSBjYW4gbm90IHBlcmZvcm0gYW55IHN0YXQgY2FsY3VsYXRpb24KY29uc3Qgc2hvdWxkU2tpcEJ1Y2tldCA9IChidWNrZXRNZXRhLCBrZXkpID0+IHsKICBpZiAoYnVja2V0TWV0YVtrZXldICYmIGJ1Y2tldE1ldGFba2V5XS5oYXNOYU4pIHsKICAgIHJldHVybiB0cnVlOwogIH0KICByZXR1cm4gZmFsc2U7Cn07CgovKioKICogRnVuY3Rpb24gdGhhdCBrZWVwcyB0cmFjayBvZiB0aGUgbWF4IGlucHV0dGVkIGRlY2ltYWwgbGVuZ3RoIG9mIGNvbHVtbiB2YWx1ZXMuCiAqIFRoaXMgaXMgdXNlZCBmb3IgY29uZGl0aW9uYWwgZm9ybWF0dGluZyBpbiB0aGUgc3RhdHMgbW9kdWxlIHRvIGRldGVybWluZSB0aGUgbWF4aW11bQogKiBhbW91bnQgb2YgcGFkZGVkIDBzCiAqCiAqIEB0eXBlZGVmIFVwZGF0ZU1heERlY2ltYWxNZXRhSW5mb1BhcmFtCiAqIEBwYXJhbSB7U3RyaW5nfSBjb2x1bW5UeXBlIC0gVGhlIHR5cGUgb2YgdGhlIGN1cnJlbnQgY29sdW1uCiAqIEBwYXJhbSB7T2JqZWN0fSBjb2x1bW4gLSBUaGUgY29sdW1uIG9iamVjdAogKiBAcGFyYW0ge09iamVjdH0gYnVja2V0IC0gVGhlIGN1cnJlbnQgc3RhdCBidWNrZXQgaW4gY29udGV4dAogKgogKiBAcGFyYW0ge1VwZGF0ZU1heERlY2ltYWxNZXRhSW5mb1BhcmFtfSBwYXJhbQogKi8KY29uc3QgdXBkYXRlTWF4RGVjaW1hbE1ldGFJbmZvID0gKHsgY29sdW1uVHlwZSwgY29sdW1uLCBidWNrZXQgfSkgPT4gewogIGlmIChjb2x1bW5UeXBlICE9PSAic3RhdHVzIikgewogICAgY29uc3QgWywgZGVjaW1hbF0gPSBjb2x1bW4uc3BsaXQoIi4iKTsKICAgIGJ1Y2tldC5tZXRhLm1heERlY2ltYWxzID0gTWF0aC5tYXgoCiAgICAgIGJ1Y2tldC5tZXRhLm1heERlY2ltYWxzLAogICAgICBkZWNpbWFsPy5sZW5ndGggPz8gMCwKICAgICk7CiAgfQp9OwoKLyoqCiAqIEB0eXBlZGVmICBNZXRhSW5mbwogKiAgQWRkaXRpb25hbCBtZXRhaW5mb3JtYXRpb24gdG8gYmUgdXNlZCBmb3IgcG9zdC1wcm9jZXNzaW5nIChsaWtlIG51bWJlciBmb3JtYXR0aW5nKQogKiBAcHJvcCB7c3RyaW5nfG51bGx9IHR5cGUgLSBUaGUgY29sdW1uIHR5cGUKICogQHByb3Age251bWJlcn0gbWF4RGVjaW1hbHMgLSBUaGUgbWF4aW11bSBhbW91bnQgb2YgZGVjaW1hbHMgYWNyb3NzIGFsbCBudW1iZXJzIGluIHRoZSBidWNrZXQKICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VkIGZvciBudW1iZXIgZm9ybWF0dGluZwogKi8KCi8qKgogKiBAdHlwZWRlZiBCdWNrZXQKICogU3RhdGlzdGljcyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIHJlYWN0IHRhYmxlIGFyZSBjYWxjdWxhdGVkIGluIGJ1Y2tldHMsIGVhY2ggYnVja2V0IHJlcHJlc2VudGluZyBvbmUgInJvdyIgaW4gdGhlCiAqIHN0YXRpc3RpY3MgdGFibGUgKHRvdGFsLCBjb3JyZWN0LCBjb3JyZWN0IHRydWUsIGV0YykuCiAqIFRoaXMgb2JqZWN0IHN0b3JlcyBhbGwgYWNjdW11bGF0ZWQgaW5mb3JtYXRpb24gYWJvdXQgdGhpcyBidWNrZXQuCiAqCiAqIEBwcm9wIHtudW1iZXJ9IHN1bSAtIFRoZSBzdW0gb2YgdGhlIGJ1Y2tldAogKiBAcHJvcCB7bnVtYmVyfSBhdmcgLSBUaGUgYXZlcmFnZSBvZiB0aGUgYnVja2V0CiAqIEBwcm9wIHtudW1iZXJ8c3RyaW5nfSBtYXggLSBUaGUgbWF4aW1hbCB2YWx1ZSBvZiB0aGUgYnVja2V0CiAqIEBwcm9wIHtudW1iZXJ9IG1lZGlhbiAtIFRoZSBtZWRpYW4gdmFsdWUgb2YgdGhlIGJ1Y2tldAogKiBAcHJvcCB7bnVtYmVyfHN0cmluZ30gbWluIC0gVGhlIG1pbmltdW0gdmFsdWUgb2YgdGhlIGJ1Y2tldAogKiBAcHJvcCB7bnVtYmVyfSBzdGRldiAtIFRoZSBzdGFuZGFyZCBkZXZpYXRpb24gb2YgdGhlIGJ1Y2tldAogKiBAcHJvcCB7bnVtYmVyfSB2YXJpYW5jZSAtIFRoZSB2YXJpYW5jZSBvZiB0aGUgYnVja2V0CiAqIEBwcm9wIHtNZXRhSW5mb30gW21ldGFdIC0gTWV0YSBpbmZvcm1hdGlvbiBvZiB0aGUgYnVja2V0CiAqLwoKb25tZXNzYWdlID0gZnVuY3Rpb24gKGUpIHsKICBjb25zdCB7IGRhdGEsIHRyYW5zYWN0aW9uIH0gPSBlLmRhdGE7CgogIC8vIHRlbXBsYXRlCiAgLyoqIEBjb25zdCB7IEJ1Y2tldCB9ICovCiAgY29uc3QgZGVmYXVsdE9iaiA9IHsKICAgIHN1bTogMCwKICAgIGF2ZzogMCwKICAgIG1heDogIi1JbmZpbml0eSIsCiAgICBtZWRpYW46IDAsCiAgICBtaW46ICJJbmZpbml0eSIsCiAgICBzdGRldjogMCwKICAgIHZhcmlhbmNlOiAwLAogIH07CgogIC8qKiBAY29uc3Qge01ldGFJbmZvfSAqLwogIGNvbnN0IG1ldGFUZW1wbGF0ZSA9IHsKICAgIHR5cGU6IG51bGwsCiAgICBtYXhEZWNpbWFsczogMCwKICB9OwoKICAvLyBDb3B5IG9mIHRoZSB0ZW1wbGF0ZSB3aXRoIGFsbCB2YWx1ZXMgcmVwbGFjZWQgd2l0aCBOYU4KICBjb25zdCBuYW5PYmogPSB7IC4uLmRlZmF1bHRPYmogfTsKICBmb3IgKGNvbnN0IG9iaktleSBvZiBPYmplY3Qua2V5cyhuYW5PYmopKSB7CiAgICBuYW5PYmpbb2JqS2V5XSA9ICJOYU4iOwogIH0KCiAgbGV0IGNvcHkgPSBbLi4uZGF0YV0uZmlsdGVyKAogICAgKGkpID0+IGkgJiYgaS5jb2x1bW4gIT09IHVuZGVmaW5lZCAmJiBpLmNvbHVtbiAhPT0gbnVsbCwKICApOwogIGNvcHkgPSBwYXJzZVB5dGhvbkluZmluaXR5VmFsdWVzKGNvcHkpOwoKICBpZiAoY29weS5sZW5ndGggPT09IDApIHsKICAgIC8vIE5vIGRhdGEgdG8gcGVyZm9ybSBjYWxjdWxhdGlvbnMgd2l0aAogICAgcG9zdFJlc3VsdCh7IHRvdGFsOiB1bmRlZmluZWQgfSwgdHJhbnNhY3Rpb24pOwogICAgcmV0dXJuOwogIH0KCiAgY29uc3QgeyBjb2x1bW5UeXBlIH0gPSBjb3B5WzBdOwogIG1ldGFUZW1wbGF0ZS50eXBlID0gY29sdW1uVHlwZTsKCiAgY29weS5zb3J0KChhLCBiKSA9PiBhLmNvbHVtbiAtIGIuY29sdW1uKTsKCiAgLyoqIEB0eXBlIHtPYmplY3QuPHN0cmluZywgQnVja2V0Pn0gKi8KICBjb25zdCBidWNrZXRzID0ge307CiAgY29uc3QgYnVja2V0TmFOSW5mbyA9IHt9OyAvLyB1c2VkIHRvIHN0b3JlIE5hTiBpbmZvIG9mIGJ1Y2tldHMKCiAgLyoqIEB0eXBlIHtCdWNrZXR9ICovCiAgbGV0IHRvdGFsID0geyAuLi5kZWZhdWx0T2JqLCBpdGVtczogW10sIG1ldGE6IHsgLi4ubWV0YVRlbXBsYXRlIH0gfTsKCiAgdG90YWwubWF4ID0gY29weVtjb3B5Lmxlbmd0aCAtIDFdLmNvbHVtbjsKICB0b3RhbC5taW4gPSBjb3B5WzBdLmNvbHVtbjsKCiAgY29uc3QgdG90YWxOYU5JbmZvID0gewogICAgaGFzTmFOOiBjb3B5LnNvbWUoKGl0ZW0pID0+IHsKICAgICAgaWYgKGl0ZW0uY29sdW1uVHlwZSAhPT0gInN0YXR1cyIgJiYgaXNOYU4oaXRlbS5jb2x1bW4pKSB7CiAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgIH0KICAgICAgcmV0dXJuIGZhbHNlOwogICAgfSksCiAgfTsKCiAgLy8gQnVja2V0IHNldHVwIHdpdGggc3VtIGFuZCBtaW4vbWF4CiAgZm9yIChjb25zdCBpdGVtIG9mIGNvcHkpIHsKICAgIGNvbnN0IGtleSA9IGAke2l0ZW0uY2F0ZWdvcnlUeXBlfV8ke2l0ZW0ucmVzdWx0VHlwZX1gOwogICAgY29uc3QgdG90YWxLZXkgPSBgJHtpdGVtLmNhdGVnb3J5VHlwZX1gOwogICAgY29uc3QgeyBjb2x1bW5UeXBlOiB0eXBlLCBjb2x1bW4sIGNvbHVtblRpdGxlOiB0aXRsZSB9ID0gaXRlbTsKICAgIGlmICghdG90YWwudGl0bGUpIHsKICAgICAgdG90YWwudGl0bGUgPSB0aXRsZTsKICAgIH0KICAgIGNvbnN0IGJ1Y2tldCA9IGJ1Y2tldHNba2V5XSB8fCB7CiAgICAgIC4uLmRlZmF1bHRPYmosCiAgICAgIHRpdGxlLAogICAgICBpdGVtczogW10sCiAgICAgIG1ldGE6IHsgLi4ubWV0YVRlbXBsYXRlIH0sCiAgICB9OwoKICAgIGNvbnN0IHN1YlRvdGFsQnVja2V0ID0gYnVja2V0c1t0b3RhbEtleV0gfHwgewogICAgICAuLi5kZWZhdWx0T2JqLAogICAgICB0aXRsZSwKICAgICAgaXRlbXM6IFtdLAogICAgICBtZXRhOiB7IC4uLm1ldGFUZW1wbGF0ZSB9LAogICAgfTsKCiAgICBjb25zdCBpdGVtSXNOYU4gPSB0eXBlICE9PSAic3RhdHVzIiAmJiBpc05hTihjb2x1bW4pOwoKICAgIC8vIGlmIG9uZSBpdGVtIGlzIE5hTiB3ZSBzdG9yZSB0aGF0IGluZm8gc28gd2UgY2FuIGRlZmF1bHQgYWxsCiAgICAvLyBjYWxjdWxhdGVkIHZhbHVlcyBmb3IgdGhpcyBidWNrZXQgdG8gTmFOCiAgICBpZiAoaXRlbUlzTmFOKSB7CiAgICAgIGJ1Y2tldE5hTkluZm9ba2V5XSA9IHsgaGFzTmFOOiB0cnVlIH07CiAgICAgIGJ1Y2tldE5hTkluZm9bdG90YWxLZXldID0geyBoYXNOYU46IHRydWUgfTsKCiAgICAgIC8vIHNldCBhbGwgdmFsdWVzIGZvciB0aGlzIGJ1Y2tldCB0byBOYU4KICAgICAgYnVja2V0c1trZXldID0geyAuLi5uYW5PYmosIHRpdGxlIH07CiAgICAgIGJ1Y2tldHNbdG90YWxLZXldID0geyAuLi5uYW5PYmosIHRpdGxlIH07CiAgICAgIGNvbnRpbnVlOwogICAgfQoKICAgIC8vIHdlIGNoZWNrIGlmIHdlIHNob3VsZCBza2lwIGNhbGN1bGF0aW9uIGZvciB0aGVzZSBidWNrZXRzCiAgICBjb25zdCBza2lwQnVja2V0ID0gc2hvdWxkU2tpcEJ1Y2tldChidWNrZXROYU5JbmZvLCBrZXkpOwogICAgY29uc3Qgc2tpcFN1YlRvdGFsID0gc2hvdWxkU2tpcEJ1Y2tldChidWNrZXROYU5JbmZvLCB0b3RhbEtleSk7CgogICAgaWYgKCFza2lwQnVja2V0KSB7CiAgICAgIGJ1Y2tldC5zdW0gPSBtYXliZUFkZChidWNrZXQuc3VtLCBjb2x1bW4sIHR5cGUpOwogICAgICB1cGRhdGVNYXhEZWNpbWFsTWV0YUluZm8oeyBjb2x1bW5UeXBlLCBjb2x1bW4sIGJ1Y2tldCB9KTsKICAgIH0KICAgIGlmICghc2tpcFN1YlRvdGFsKSB7CiAgICAgIHN1YlRvdGFsQnVja2V0LnN1bSA9IG1heWJlQWRkKHN1YlRvdGFsQnVja2V0LnN1bSwgY29sdW1uLCB0eXBlKTsKICAgICAgdXBkYXRlTWF4RGVjaW1hbE1ldGFJbmZvKHsgY29sdW1uVHlwZSwgY29sdW1uLCBidWNrZXQ6IHN1YlRvdGFsQnVja2V0IH0pOwogICAgfQogICAgaWYgKCF0b3RhbE5hTkluZm8uaGFzTmFOKSB7CiAgICAgIHRvdGFsLnN1bSA9IG1heWJlQWRkKHRvdGFsLnN1bSwgY29sdW1uLCB0eXBlKTsKICAgICAgdXBkYXRlTWF4RGVjaW1hbE1ldGFJbmZvKHsgY29sdW1uVHlwZSwgY29sdW1uLCBidWNrZXQ6IHRvdGFsIH0pOwogICAgfQoKICAgIGlmICghaXNOYU4oTnVtYmVyKGNvbHVtbikpKSB7CiAgICAgIGlmICghc2tpcEJ1Y2tldCkgewogICAgICAgIGJ1Y2tldC5tYXggPSBtYXRoU3RyaW5nTWF4KGJ1Y2tldC5tYXgsIGNvbHVtbik7CiAgICAgICAgYnVja2V0Lm1pbiA9IG1hdGhTdHJpbmdNaW4oYnVja2V0Lm1pbiwgY29sdW1uKTsKICAgICAgfQogICAgICBpZiAoIXNraXBTdWJUb3RhbCkgewogICAgICAgIHN1YlRvdGFsQnVja2V0Lm1heCA9IG1hdGhTdHJpbmdNYXgoc3ViVG90YWxCdWNrZXQubWF4LCBjb2x1bW4pOwogICAgICAgIHN1YlRvdGFsQnVja2V0Lm1pbiA9IG1hdGhTdHJpbmdNaW4oc3ViVG90YWxCdWNrZXQubWluLCBjb2x1bW4pOwogICAgICB9CiAgICB9CiAgICBpZiAoIXNraXBCdWNrZXQpIHsKICAgICAgdHJ5IHsKICAgICAgICBidWNrZXQuaXRlbXMucHVzaChpdGVtKTsKICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgIGNvbnNvbGUuZSh7IGJ1Y2tldCwgYnVja2V0TWV0YTogYnVja2V0TmFOSW5mbywga2V5IH0pOwogICAgICB9CiAgICB9CiAgICBpZiAoIXNraXBTdWJUb3RhbCkgewogICAgICB0cnkgewogICAgICAgIHN1YlRvdGFsQnVja2V0Lml0ZW1zLnB1c2goaXRlbSk7CiAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICBjb25zb2xlLmUoeyBzdWJUb3RhbEJ1Y2tldCwgYnVja2V0TWV0YTogYnVja2V0TmFOSW5mbywgdG90YWxLZXkgfSk7CiAgICAgIH0KICAgIH0KCiAgICBidWNrZXRzW2tleV0gPSBidWNrZXQ7CiAgICBidWNrZXRzW3RvdGFsS2V5XSA9IHN1YlRvdGFsQnVja2V0OwogIH0KCiAgZm9yIChjb25zdCBbYnVja2V0LCB2YWx1ZXNdIG9mIE9iamVjdC5lbnRyaWVzKGJ1Y2tldHMpKSB7CiAgICBpZiAoc2hvdWxkU2tpcEJ1Y2tldChidWNrZXROYU5JbmZvLCBidWNrZXQpKSB7CiAgICAgIGNvbnRpbnVlOwogICAgfQogICAgY2FsY3VsYXRlTWVhbih2YWx1ZXMsIHZhbHVlcy5pdGVtcyk7CgogICAgY2FsY3VsYXRlTWVkaWFuKHZhbHVlcywgdmFsdWVzLml0ZW1zKTsKICAgIGJ1Y2tldHNbYnVja2V0XSA9IHZhbHVlczsKICB9CiAgY29uc3QgdG90YWxIYXNOYU4gPSB0b3RhbE5hTkluZm8uaGFzTmFOOwoKICBpZiAodG90YWxIYXNOYU4pIHsKICAgIHRvdGFsID0geyAuLi50b3RhbCwgLi4ubmFuT2JqIH07CiAgfSBlbHNlIHsKICAgIGNhbGN1bGF0ZU1lYW4odG90YWwsIGNvcHkpOwogICAgY2FsY3VsYXRlTWVkaWFuKHRvdGFsLCBjb3B5KTsKICB9CgogIGZvciAoY29uc3QgaXRlbSBvZiBjb3B5KSB7CiAgICBjb25zdCB7IGNvbHVtbiB9ID0gaXRlbTsKICAgIGlmIChpc05hTihOdW1iZXIoY29sdW1uKSkpIHsKICAgICAgY29udGludWU7CiAgICB9CiAgICBjb25zdCBudW1Db2wgPSBOdW1iZXIoY29sdW1uKTsKICAgIGNvbnN0IGtleSA9IGAke2l0ZW0uY2F0ZWdvcnlUeXBlfV8ke2l0ZW0ucmVzdWx0VHlwZX1gOwogICAgY29uc3QgdG90YWxLZXkgPSBgJHtpdGVtLmNhdGVnb3J5VHlwZX1gOwogICAgY29uc3QgYnVja2V0ID0gYnVja2V0c1trZXldOwogICAgY29uc3Qgc3ViVG90YWxCdWNrZXQgPSBidWNrZXRzW3RvdGFsS2V5XTsKICAgIGNvbnN0IGRpZmZCdWNrZXQgPSBudW1Db2wgLSBidWNrZXQuYXZnOwogICAgY29uc3QgZGlmZlN1YlRvdGFsID0gbnVtQ29sIC0gc3ViVG90YWxCdWNrZXQuYXZnOwogICAgY29uc3QgZGlmZlRvdGFsID0gbnVtQ29sIC0gdG90YWwuYXZnOwogICAgdG90YWwudmFyaWFuY2UgKz0gTWF0aC5wb3coZGlmZlRvdGFsLCAyKTsKICAgIGJ1Y2tldC52YXJpYW5jZSArPSBNYXRoLnBvdyhkaWZmQnVja2V0LCAyKTsKICAgIHN1YlRvdGFsQnVja2V0LnZhcmlhbmNlICs9IE1hdGgucG93KGRpZmZTdWJUb3RhbCwgMik7CiAgfQoKICBjb25zdCB0b3RhbEhhc05lZ0luZiA9IE51bWJlcih0b3RhbC5taW4pID09PSAtSW5maW5pdHk7CiAgY29uc3QgdG90YWxIYXNQb3NJbmYgPSBOdW1iZXIodG90YWwubWF4KSA9PT0gSW5maW5pdHk7CiAgdG90YWwuc3RkZXYgPSBjYWxjdWxhdGVTdGRldigKICAgIHRvdGFsSGFzTmVnSW5mLAogICAgdG90YWxIYXNQb3NJbmYsCiAgICB0b3RhbC52YXJpYW5jZSwKICAgIGNvcHkubGVuZ3RoLAogICk7CgogIGZvciAoY29uc3QgW2J1Y2tldCwgdmFsdWVzXSBvZiBPYmplY3QuZW50cmllcyhidWNrZXRzKSkgewogICAgaWYgKHNob3VsZFNraXBCdWNrZXQoYnVja2V0TmFOSW5mbywgYnVja2V0KSkgewogICAgICBmb3IgKGNvbnN0IFtrZXksIHZhbF0gb2YgT2JqZWN0LmVudHJpZXModmFsdWVzKSkgewogICAgICAgIHZhbHVlc1trZXldID0gdmFsLnRvU3RyaW5nKCk7CiAgICAgIH0KICAgICAgYnVja2V0c1tidWNrZXRdID0gdmFsdWVzOwogICAgICBjb250aW51ZTsKICAgIH0KICAgIGNvbnN0IHZhbHVlc0hhdmVOZWdJbmYgPSBOdW1iZXIodmFsdWVzLm1pbikgPT09IC1JbmZpbml0eTsKICAgIGNvbnN0IHZhbHVlc0hhdmVQb3NJbmYgPSBOdW1iZXIodG90YWwubWF4KSA9PT0gSW5maW5pdHk7CiAgICB2YWx1ZXMuc3RkZXYgPSBjYWxjdWxhdGVTdGRldigKICAgICAgdmFsdWVzSGF2ZU5lZ0luZiwKICAgICAgdmFsdWVzSGF2ZVBvc0luZiwKICAgICAgdmFsdWVzLnZhcmlhbmNlLAogICAgICB2YWx1ZXMuaXRlbXMubGVuZ3RoLAogICAgKTsKCiAgICBmb3IgKGNvbnN0IFtrZXksIHZhbF0gb2YgT2JqZWN0LmVudHJpZXModmFsdWVzKSkgewogICAgICBpZiAoa2V5ID09PSAibWV0YSIpIHsKICAgICAgICBjb250aW51ZTsKICAgICAgfQogICAgICB2YWx1ZXNba2V5XSA9IHZhbC50b1N0cmluZygpOwogICAgfQogICAgLy8gY2xlYXJpbmcgbWVtb3J5CiAgICBkZWxldGUgdmFsdWVzLml0ZW1zOwogICAgZGVsZXRlIHZhbHVlcy52YXJpYW5jZTsKICAgIGJ1Y2tldHNbYnVja2V0XSA9IHZhbHVlczsKICB9CgogIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHRvdGFsKSkgewogICAgaWYgKGtleSA9PT0gIm1ldGEiKSB7CiAgICAgIGNvbnRpbnVlOwogICAgfQogICAgdG90YWxba2V5XSA9IHZhbHVlLnRvU3RyaW5nKCk7CiAgfQoKICBkZWxldGUgdG90YWwuaXRlbXM7CiAgZGVsZXRlIHRvdGFsLnZhcmlhbmNlOwoKICBjb25zdCByZXN1bHQgPSB7IGNvbHVtblR5cGUsIHRvdGFsLCAuLi5idWNrZXRzIH07CiAgcG9zdFJlc3VsdChyZXN1bHQsIHRyYW5zYWN0aW9uKTsKfTsKCmNvbnN0IHBvc3RSZXN1bHQgPSAocmVzdWx0LCB0cmFuc2FjdGlvbikgPT4gewogIC8vIGhhbmRsaW5nIGluIHRlc3RzCiAgaWYgKHRoaXMubW9ja2VkUG9zdE1lc3NhZ2UpIHsKICAgIHRoaXMubW9ja2VkUG9zdE1lc3NhZ2UoeyByZXN1bHQsIHRyYW5zYWN0aW9uIH0pOwogICAgcmV0dXJuOwogIH0KICBwb3N0TWVzc2FnZSh7IHJlc3VsdCwgdHJhbnNhY3Rpb24gfSk7Cn07Cg==",poolSize:8,name:"stats"}].map((function(e){for(var t=e.template,n=e.poolSize,i=e.name,r=[],s=function(e){var n=new Worker(t),i={worker:n,busy:!1};n.onmessage=function(e){return function(e,t){var n=e.data,i=n.transaction,r=n.result,s=Be[i];t.busy=!1,s(r),delete Be[i]}(e,i)},r.push(i)},l=0;l<n;l+=1)s();return{name:i,pool:r}})).reduce((function(e,t){var n=t.name,i=t.pool;return(0,c.Z)((0,c.Z)({},e),{},(0,p.Z)({},n,i))}),{}),Ye=function e(){var t=Ne.shift();if(t){var n=function(e){var t=we[e].filter((function(e){return!e.busy}))[0];return t?t.busy?null:(t.busy=!0,t):null}(t.name);if(!n)return Ne.unshift(t),void setImmediate(e);var i=Ge;Ge+=1;var r={data:t.data,transaction:i};Be[i]=t.callback,n.worker.postMessage(r),setImmediate(e)}},Se=function(){var e=(0,We.Z)((0,Fe.Z)().mark((function e(t){var n,i;return(0,Fe.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=t.name,i=t.data,e.abrupt("return",new Promise((function(e){Ne.push({name:n,data:i,callback:e}),setImmediate(Ye)})));case 2:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),Ve=["columnType"],ke=["meta"],Re={total:{title:"all results"},correct:{indent:1,title:"correct results",description:"(property holds + result is true) OR (property does not hold + result is false)"},correct_true:{indent:2,title:"correct true",description:"property holds + result is true"},correct_false:{indent:2,title:"correct false",description:"property does not hold + result is false"},correct_unconfirmed:{indent:1,title:"correct-unconfirmed results",description:"(property holds + result is true) OR (property does not hold + result is false), but unconfirmed"},correct_unconfirmed_true:{indent:2,title:"correct-unconfirmed true",description:"property holds + result is true, but unconfirmed"},correct_unconfirmed_false:{indent:2,title:"correct-unconfirmed false",description:"property does not hold + result is false, but unconfirmed"},wrong:{indent:1,title:"incorrect results",description:"(property holds + result is false) OR (property does not hold + result is true)"},wrong_true:{indent:2,title:"incorrect true",description:"property does not hold + result is true"},wrong_false:{indent:2,title:"incorrect false",description:"property holds + result is false"}},He=function(e){return e.filter((function(e){return Re[e.id]}))},Te=function(){var e=(0,We.Z)((0,Fe.Z)().mark((function e(t){var n,i,r,s,l,a,o;return(0,Fe.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=t.tools,i=t.tableData,r=t.stats,s=Xe(n),e.next=4,Me({tools:n,tableData:i,formatter:s});case 4:return l=e.sent,a=r.map((function(e){return e.id})).filter((function(e){return Re[e]})),o=Le(l,s,a),l=o.map((function(e,t){var i,r=[],s=n[t].columns,l=0,a=s[l],o=(0,f.Z)(e);try{for(o.s();!(i=o.n()).done;){for(var c=i.value,u=c.title;l<s.length&&u!==a.title;)r.push({}),a=s[++l];if(l>=s.length)break;r.push(c),a=s[++l]}}catch(d){o.e(d)}finally{o.f()}return r})),e.abrupt("return",He(r).map((function(e){var t=e.content.map((function(t,n){return l[n].map((function(t){return t[e.id]}))}));return(0,c.Z)((0,c.Z)({},e),{},{content:t})})));case 9:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),Xe=function(e){return e.map((function(e,t){return e.columns.map((function(e,n){var i=e.number_of_significant_digits;return new te(i,"".concat(t,"-").concat(n))}))}))},Ke=function(e,t,n){return function(n,i){var r=i.significantDigits,s=Number(n),l=n.split("."),a=(0,d.Z)(l,2),o=a[0],c=a[1];if(["sum","avg","stdev"].includes(e)){var u,h;if(B(r)&&"sum"!==e)return s.toFixed(2);var g=o.replace(/^0+/,""),f=c||"";""===g&&(f=f.replace(/^0+/,""));var p=t-(null!==(u=null===c||void 0===c?void 0:c.length)&&void 0!==u?u:0),m=r-(g.length+f.length),v=m>0,I=(null!==(h=null===c||void 0===c?void 0:c.length)&&void 0!==h?h:0)+m;if(p>0&&v&&"stdev"!==e)return p>m?s.toFixed(I):s.toFixed(t);if("avg"===e&&!v&&p<0&&"0"===n[n.length-1])return s.toFixed(t);if("stdev"===e&&v)return s.toFixed(I)}return n}},Le=function(e,t,n){var i=e.map((function(e,i){return e.map((function(e,r){var s,l={columnType:e.columnType},a=(0,f.Z)(n);try{for(a.s();!(s=a.n()).done;){var o,c=s.value,u=e[c];u&&(l[c]=u,null!==(o=null===u||void 0===u?void 0:u.sum)&&void 0!==o&&o&&t[i][r].addDataItem(u.sum))}}catch(d){a.e(d)}finally{a.f()}return l}))}));for(var r in t)for(var s in t[r])t[r][s]=t[r][s].build();return i.map((function(e,n){return e.map((function(e,i){e.columnType;var r=(0,I.Z)(e,Ve),s={};if(void 0!==r.total){for(var l=0,a=Object.entries(r);l<a.length;l++){for(var o=(0,d.Z)(a[l],2),c=o[0],u=o[1],h={},g=null===u||void 0===u?void 0:u.meta,f=0,p=Object.entries(u);f<p.length;f++){var m,v=(0,d.Z)(p[f],2),b=v[0],C=v[1];if(!ke.includes(b)){var x=null!==(m=null===g||void 0===g?void 0:g.maxDecimals)&&void 0!==m?m:0;if("title"!==b){if(!B(C)&&(!isNaN(C)||"NaN"===C)&&t[n][i])try{h[b]="sum"===b?t[n][i](C,{leadingZero:!1,whitespaceFormat:!0,html:!0,additionalFormatting:Ke(b,x)}):t[n][i](C,{leadingZero:!0,whitespaceFormat:!1,html:!1,additionalFormatting:Ke(b,x)})}catch(y){console.error({key:b,value:C,formatter:t[n][i],e:y})}}else s.title=C}}s[c]=h}return s}})).filter((function(e){return!B(e)}))}))},Oe="false",Ue="false",De="other",Ee=function(e,t,n,i,r){return e.map((function(e){var r,s=n(t,e),l=i(t,e);return{categoryType:s.replace(/-/g,"_"),resultType:B(r=l)?De:"true"===r?"true":r===Oe||r.startsWith("".concat(Oe,"("))&&r.endsWith(")")?Ue:De,row:e.results[t].values}}))},Pe=function(e){return function(t,n){var i,r=[],s=(0,f.Z)(t);try{for(s.s();!(i=s.n()).done;){var l=i.value,a=l.row,o=l.categoryType,c=l.resultType;for(var u in a){var d=a[u].raw,h=r[u]||[],g=e[n].columns[u],p=g.type,m=g.title;h.push({categoryType:o,resultType:c,column:d,columnType:p,columnTitle:m}),r[u]=h}}}catch(v){s.e(v)}finally{s.f()}return r}},Me=function(){var e=(0,We.Z)((0,Fe.Z)().mark((function e(t){var n,i,r,s,l,a,o,c,u,d,h,g,f,p,m,v,I;return(0,Fe.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:for(o in n=t.tools,i=t.tableData,t.formatter,r=function(e,t){return t.results[e].category},s=function(e,t){return t.results[e].values[0].raw},l=[],a=[],n)a.push(Ee(i,o,r,s));for(d in c=Pe(n),u=a.map(c))u[d]=u[d].filter((function(e){return!B(e)}));for(h in u){for(p in g=u[h],f=[],g)m=g[p],f.push(Se({name:"stats",data:m}));l[h]=f}return v=l.map((function(e){return Promise.all(e)})),e.next=13,Promise.all(v);case 13:return I=e.sent,e.abrupt("return",I);case 15:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),Je=.15*window.innerWidth,ze=function(e){return Object.keys(e).filter((function(t){return e[t]&&"sum"!==t})).map((function(t){return"".concat(t,": ").concat(e[t])})).join(", ")||void 0},_e=function(e){var t=e.selectColumn,n=e.tools,r=e.switchToQuantile,s=e.hiddenCols,l=e.tableData,a=e.onStatsReady,o=e.stats,u=e.filtered,h=void 0!==u&&u,g=(0,i.useState)(h?[]:o),f=(0,d.Z)(g,2),p=f[0],I=f[1],b=(0,i.useState)(!0),C=(0,d.Z)(b,2),x=C[0],y=C[1];(0,i.useEffect)((function(){var e=function(){var e=(0,We.Z)((0,Fe.Z)().mark((function e(){var t;return(0,Fe.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!h){e.next=7;break}return e.next=3,Te({tools:n,tableData:l,stats:o});case 3:t=e.sent,I(t),e.next=8;break;case 7:I(o);case 8:a&&a();case 9:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}();e()}),[n,l,a,false,o,h]);var Z=function(e){return(0,j.jsx)("div",{className:"table-header",children:e.map((function(e){return(0,j.jsx)("div",(0,c.Z)((0,c.Z)({className:"tr headergroup"},e.getHeaderGroupProps()),{},{children:e.headers.map((function(e){return(0,j.jsxs)("div",(0,c.Z)((0,c.Z)({},e.getHeaderProps({className:"th header ".concat(e.headers?"outer ":"").concat(e.className||"")})),{},{children:[e.render("Header"),(!e.className||!e.className.includes("separator"))&&(0,j.jsx)("div",(0,c.Z)((0,c.Z)({},e.getResizerProps()),{},{className:"resizer ".concat(e.isResizing?"isResizing":"")}))]}))}))}))}))})},A=function(e){return(0,j.jsx)("div",(0,c.Z)((0,c.Z)({},Y()),{},{className:"table-body body",children:e.map((function(e){return R(e),(0,j.jsx)("div",(0,c.Z)((0,c.Z)({},e.getRowProps()),{},{className:"tr",children:e.cells.map((function(e){return(0,j.jsx)("div",(0,c.Z)((0,c.Z)({},e.getCellProps({className:"td "+(e.column.className||"")})),{},{children:e.render("Cell")}))}))}))}))}))},F=(0,i.useMemo)((function(){var e=n.map((function(e,t){return me(e,t,function(e){var t=e.switchToQuantile,n=e.hiddenCols;return function(e,i,r){return{id:"".concat(e,"_").concat(i.display_title,"_").concat(r),Header:(0,j.jsx)(he,{column:i,className:"header-data clickable",title:"Show Quantile Plot of this column",onClick:function(e){return t(i)}}),hidden:n[e].includes(i.colIdx)||!(N(i)||"status"===i.type),width:V(i,null,"status"===i.type?6:null),minWidth:30,accessor:function(t){return t.content[e][r]},Cell:function(e){var t,n=null===(t=e.value)||void 0===t?void 0:t.sum;return"status"===i.type&&(n=void 0===e.value?0:null===e.value?null:Number.isInteger(Number(e.value.sum))?Number(e.value.sum):e.value.sum),B(n)?(0,j.jsx)("div",{className:"cell",children:"-"}):(0,j.jsx)("div",{dangerouslySetInnerHTML:{__html:n},className:"cell",title:"status"!==i.type?ze(e.value):void 0})}}}}({switchToQuantile:r,hiddenCols:s}))})).flat();return[{Header:function(){return(0,j.jsx)("form",{children:(0,j.jsxs)("label",{title:"Fix the first column",children:["Fixed row title:",(0,j.jsx)("input",{id:"fixed-row-title",name:"fixed",type:"checkbox",checked:x,onChange:function(e){var t=e.target;return y(t.checked)}})]})})},id:"row-title",sticky:x?"left":"",width:Je,minWidth:100,columns:[{id:"summary",width:Je,minWidth:100,Header:(0,j.jsx)(de,{handler:t}),Cell:function(e){return(0,j.jsx)("div",{dangerouslySetInnerHTML:{__html:(e.row.original.title||"&nbsp;".repeat(4*Re[e.row.original.id].indent)+Re[e.row.original.id].title)+(h?" of selected rows":"")},title:e.row.original.description||Re[e.row.original.id].description,className:"row-title"})}}]}].concat(e)}),[h,x,r,s,t,n]),W=(0,i.useMemo)((function(){return p}),[p]),G=(0,m.useTable)({columns:F,data:W,initialState:{hiddenColumns:le(F)}},m.useFilters,m.useResizeColumns,m.useFlexLayout,v.useSticky),w=G.getTableProps,Y=G.getTableBodyProps,S=G.headerGroups,k=G.rows,R=G.prepareRow;return(0,j.jsxs)("div",{id:"statistics",children:[(0,j.jsx)("h2",{children:"Statistics"}),function(e,t){return h&&0===p.length?(0,j.jsx)("p",{id:"statistics-placeholder",children:"Please wait while the statistics are being calculated."}):(0,j.jsx)("div",{id:"statistics-table",children:(0,j.jsx)("div",{className:"table sticky",children:(0,j.jsx)("div",{className:"table-content",children:(0,j.jsxs)("div",(0,c.Z)((0,c.Z)({className:"table-container"},w()),{},{children:[Z(e),A(t)]}))})})})}(S,k)]})},Qe=["displayName","tool","limit","host","os","system","date","runset","branch","options","property"],qe=function(e){var t=function(e){return e.split(/[\s]+-/).map((function(e,t){return(0,j.jsx)("li",{children:(0,j.jsx)("code",{children:0===t?e:"-".concat(e)})},e)}))},n=function(e,t){return e?(0,j.jsx)("a",{href:e,target:"_blank",rel:"noopener noreferrer",children:t}):t},i=function(e){var t=e.tool,i=e.version,r=e.project_url,s=e.version_url;return(0,j.jsxs)(j.Fragment,{children:[n(r,t)," ",n(s,i)]})};return(0,j.jsxs)("div",{id:"summary",children:[(0,j.jsxs)("div",{id:"benchmark_setup",children:[(0,j.jsx)("h2",{children:"Benchmark Setup"}),(0,j.jsx)("table",{children:(0,j.jsx)("tbody",{children:Qe.map((function(t){return e.tableHeader[t]})).filter((function(e){return null!==e})).map((function(e){return(0,j.jsxs)("tr",{className:e.id,children:[(0,j.jsx)("th",{children:e.name},"td-"+e.id),e.content.map((function(n,r){return function(e,n,r,s){var l="options"===e,a="tool"===e;return(0,j.jsx)("td",{colSpan:r,className:"header__tool-row".concat(l&&" options"),children:l?(0,j.jsx)("ul",{children:t(n)}):a?i(n):n},n+s)}(e.id,n[0],n[1],r)}))]},"tr-"+e.id)}))})})]}),(0,j.jsx)(_e,{selectColumn:e.selectColumn,tools:e.tools,switchToQuantile:e.switchToQuantile,hiddenCols:e.hiddenCols,tableData:e.tableData,onStatsReady:e.onStatsReady,stats:e.stats,filtered:e.filtered}),(0,j.jsxs)("p",{children:["Generated by"," ",(0,j.jsxs)("a",{className:"link",href:"https://github.com/sosy-lab/benchexec",target:"_blank",rel:"noopener noreferrer",children:[" ","BenchExec ",e.version]})]})]})},$e=n(4463),et=function(e){(0,a.Z)(n,e);var t=(0,o.Z)(n);function n(){var e;(0,s.Z)(this,n);for(var i=arguments.length,r=new Array(i),l=0;l<i;l++)r[l]=arguments[l];return(e=t.call.apply(t,[this].concat(r))).knownLicenses=["BSD-3-Clause","CC-BY-4.0","ISC","MIT","Zlib"],e.linkifyLicense=function(e){return(0,j.jsx)("a",{href:"https://spdx.org/licenses/"+e,target:"_blank",rel:"noopener noreferrer",children:e},e)},e.linkifyLicenses=function(t){return t.split(/([A-Za-z0-9.-]+)/).map((function(t){return e.knownLicenses.includes(t)?e.linkifyLicense(t):t}))},e.render=function(){return(0,j.jsxs)("div",{children:[(0,j.jsx)("h4",{children:(0,j.jsxs)("a",{href:"https://www.npmjs.com/package/"+e.props.name+"/v/"+e.props.version,target:"_blank",rel:"noopener noreferrer",children:[e.props.name," ",e.props.version]})}),e.props.repository&&(0,j.jsxs)(j.Fragment,{children:["Source:"," ",(0,j.jsx)("a",{href:e.props.repository,target:"_blank",rel:"noopener noreferrer",children:e.props.repository}),(0,j.jsx)("br",{})]}),e.props.copyright&&(0,j.jsxs)(j.Fragment,{children:[e.props.copyright,(0,j.jsx)("br",{})]}),"License: ",(0,j.jsx)(j.Fragment,{children:e.linkifyLicenses(e.props.licenses)}),void 0!==e.props.licenseId&&(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)("br",{}),(0,j.jsxs)("details",{children:[(0,j.jsx)("summary",{children:"Full text of license"}),(0,j.jsx)("pre",{children:$e.licenses[e.props.licenseId]})]})]})]})},e}return(0,l.Z)(n)}(i.Component),tt=function(e){return(0,j.jsxs)("div",{className:"info",children:[(0,j.jsx)("div",{className:"info-header",children:(0,j.jsx)("h1",{children:"Info and Help"})}),(0,j.jsx)("h3",{children:"Summary"}),(0,j.jsxs)("ul",{children:[(0,j.jsx)("li",{children:"Shows environment information and a summary of the results."}),(0,j.jsxs)("li",{children:[(0,j.jsx)("strong",{children:"Select columns:"})," ",(0,j.jsx)("br",{})," The columns to show can be selected by clicking on ",(0,j.jsx)("em",{children:"Click here to select columns"})," or"," ",(0,j.jsx)("span",{className:"link",onClick:e.selectColumn,children:"here"}),"."]}),(0,j.jsxs)("li",{children:[(0,j.jsx)("strong",{children:"Quantile plot:"})," ",(0,j.jsx)("br",{}),"A quantile plot for a column can be shown by clicking on the respective column header (e.g.,"," ",(0,j.jsx)("em",{children:"cputime"}),")."]}),(0,j.jsxs)("li",{children:[(0,j.jsx)("strong",{children:"Fixed row title:"})," ",(0,j.jsx)("br",{}),"Deselect to let the left-most column scroll together with the rest of the table."]})]}),(0,j.jsx)("h3",{children:"Table"}),(0,j.jsxs)("ul",{children:[(0,j.jsx)("li",{children:"Shows the detailed results."}),(0,j.jsxs)("li",{children:[(0,j.jsx)("strong",{children:"Fixed task:"})," ",(0,j.jsx)("br",{}),"Deselect to let the left-most column with the task name scroll together with the rest of the table."]}),(0,j.jsxs)("li",{children:[(0,j.jsx)("strong",{children:"Select columns:"})," ",(0,j.jsx)("br",{})," The columns to show can be selected by clicking on ",(0,j.jsx)("em",{children:"Click here to select columns"})," or"," ",(0,j.jsx)("span",{className:"link",onClick:e.selectColumn,children:"here"}),"."]}),(0,j.jsxs)("li",{children:[(0,j.jsx)("strong",{children:"Filter rows:"})," ",(0,j.jsx)("br",{}),"Filters can be applied to every column in the row below the column header. Numeric columns accept a range filter like ",(0,j.jsx)("em",{children:"min:max"}),", where both ",(0,j.jsx)("em",{children:"min"})," and ",(0,j.jsx)("em",{children:"max"})," are numeric values that can also be omitted for half-open ranges. For text columns (like the task name) any row matches that contains the entered filter value. Several filters can be combined and will be applied together. All filters can be deleted at once with the ",(0,j.jsx)("em",{children:"Reset Filters"})," button in the top right corner."]}),(0,j.jsxs)("li",{children:[(0,j.jsx)("strong",{children:"Sort rows:"})," ",(0,j.jsx)("br",{})," Rows can be sorted by clicking on the column header. Clicking again will toggle the sort order (ascending vs. descending). Hold ",(0,j.jsx)("kbd",{children:"Shift"})," while clicking for adding a column to the sort order."]}),(0,j.jsxs)("li",{children:[(0,j.jsx)("strong",{children:"Tool output:"})," ",(0,j.jsx)("br",{}),"Clicking on a cell in the status column will show the tool output of this run."]}),(0,j.jsxs)("li",{children:[(0,j.jsx)("strong",{children:"Task definition:"})," ",(0,j.jsx)("br",{})," Clicking on the task name will show the content of the respective file."]})]}),(0,j.jsx)("h3",{children:" Quantile Plot and Scatter Plot"}),(0,j.jsxs)("ul",{children:[(0,j.jsx)("li",{children:"Shows plots of the results that are currently visible in the table."}),(0,j.jsxs)("li",{children:[(0,j.jsx)("strong",{children:"Correct results only:"})," ",(0,j.jsx)("br",{}),"In addition to the currently applied filter, the plots by default show only correct results. Click ",(0,j.jsx)("em",{children:"Switch to All Results"})," to toggle this behavior."]}),(0,j.jsxs)("li",{children:[(0,j.jsx)("strong",{children:"Select columns:"}),(0,j.jsx)("br",{}),"The drop-down fields above the plots allow to choose which columns are shown in the plot."]})]}),(0,j.jsx)("h3",{children:"About"}),(0,j.jsxs)("p",{children:["This table was generated by"," ",(0,j.jsxs)("a",{className:"link",href:"https://github.com/sosy-lab/benchexec",target:"_blank",rel:"noopener noreferrer",children:["BenchExec ",e.version]}),". For feedback, questions, and bug reports please use our"," ",(0,j.jsx)("a",{className:"link",href:"https://github.com/sosy-lab/benchexec/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc+label%3A%22HTML+table%22",target:"_blank",rel:"noopener noreferrer",children:"issue tracker"}),"."]}),(0,j.jsxs)("p",{children:["License:"," ",(0,j.jsx)("a",{className:"link",href:"https://www.apache.org/licenses/LICENSE-2.0",target:"_blank",rel:"noopener noreferrer",children:"Apache 2.0 License"})]}),(0,j.jsxs)("details",{children:[(0,j.jsx)("summary",{children:"This application includes third-party dependencies under different licenses. Click here to view them."}),$e.dependencies.map((function(e){return(0,j.jsx)(et,(0,c.Z)({},e),e.name+e.version)}))]})]})},nt=n(9284),it=n.n(nt),rt=n(935),st=function(e){(0,a.Z)(n,e);var t=(0,o.Z)(n);function n(e){var i;(0,s.Z)(this,n),(i=t.call(this,e)).renderTools=function(){return i.props.tools.map((function(e){var t=e.toolIdx,n=i.state.hiddenCols[t].length!==e.columns.length,r=H(e);return(0,j.jsxs)("tr",{id:r,children:[(0,j.jsx)("td",{id:r,className:n?"checked":"",children:(0,j.jsxs)("label",{children:[r,(0,j.jsx)("input",{name:r+"--"+t,type:"checkbox",checked:n,onChange:function(e){return i.toggleToolHidden(t,e)}})]})}),i.renderToolColumns(t)]},"tr"+r+t)}))},i.renderToolColumns=function(e){var t=i.props.tools.find((function(t){return t.toolIdx===e}));return i.state.selectableCols.map((function(n){if(t.columns.some((function(e){return e.display_title===n}))){var r=!t.columns.filter((function(e){return e.display_title===n})).map((function(e){return e.colIdx})).some((function(t){return i.state.hiddenCols[e].includes(t)}));return(0,j.jsx)("td",{id:"td"+e+n,className:r?"checked":"",children:(0,j.jsxs)("label",{children:[n,(0,j.jsx)("input",{id:e+"--"+n,name:e+"--"+n,type:"checkbox",checked:r,onChange:function(t){return i.toggleToolColHidden(e,n,t)}})]})},n)}return(0,j.jsx)("td",{},n)}))},i.renderColumnHeaders=function(){return i.state.selectableCols.map((function(e){var t=Object.values(i.state.hiddenCols).some((function(t,n){var r=i.props.tools.find((function(e){return e.toolIdx===n}));return!r.columns.filter((function(t){return t.display_title===e})).map((function(e){return e.colIdx})).some((function(e){return t.includes(e)}))&&r.columns.some((function(t){return t.display_title===e}))}));return(0,j.jsx)("th",{id:"td-all-"+e,className:t?"checked":"",children:(0,j.jsxs)("label",{children:[e,(0,j.jsx)("input",{name:e,type:"checkbox",checked:t,onChange:function(t){return i.toggleWholeColHidden(e,t)}})]})},"key"+e)}))},i.toggleAllColsHidden=function(){var e={};i.props.tools.forEach((function(t){return e[t.toolIdx]=[]})),i.state.isButtonOnDeselect&&i.props.tools.forEach((function(t){e[t.toolIdx]=t.columns.map((function(e){return e.colIdx}))})),i.setState((function(t){return{isButtonOnDeselect:!t.isButtonOnDeselect,hiddenCols:e}}))},i.toggleToolHidden=function(e,t){var n=t.target,r=("checkbox"===n.type?n.checked:n.value)?[]:i.props.tools.find((function(t){return t.toolIdx===e})).columns.map((function(e){return e.colIdx}));i.setHiddenColsForTool(e,r)},i.toggleToolColHidden=function(e,t,n){var r=n.target,s="checkbox"===r.type?r.checked:r.value,l=i.props.tools.find((function(t){return t.toolIdx===e})).columns.filter((function(e){return e.display_title===t})).map((function(e){return e.colIdx}));s?i.removeFromHiddenCols(e,l):i.addToHiddenCols(e,l)},i.toggleWholeColHidden=function(e,t){var n=t.target,r="checkbox"===n.type?n.checked:n.value;i.props.tools.forEach((function(t){var n=t.columns.filter((function(t){return t.display_title===e}));if(n.length>0){var s=n.map((function(e){return e.colIdx}));r?i.removeFromHiddenCols(t.toolIdx,s):i.addToHiddenCols(t.toolIdx,s)}}))},i.addToHiddenCols=function(e,t){var n=(0,u.Z)(new Set(i.state.hiddenCols[e].concat(t)));i.setHiddenColsForTool(e,n)},i.removeFromHiddenCols=function(e,t){var n=i.state.hiddenCols[e].filter((function(e){return!t.includes(e)}));i.setHiddenColsForTool(e,n)},i.handlePopState=function(){window.history.back()};var r=e.tools.map((function(e){return e.columns})).flat().filter((function(e,t,n){return t===n.findIndex((function(t){return t.display_title===e.display_title}))})).map((function(e){return e.display_title}));return i.state={isButtonOnDeselect:!0,hiddenCols:i.props.hiddenCols,selectableCols:r},i}return(0,l.Z)(n,[{key:"componentDidMount",value:function(){window.history.pushState({},"",""),window.addEventListener("popstate",this.props.close,!1)}},{key:"componentWillUnmount",value:function(){var e=this;window.removeEventListener("popstate",this.props.close,!1);var t={},n=[];Object.entries(this.state.hiddenCols).forEach((function(i){var r=(0,d.Z)(i,2),s=r[0],l=r[1],a=e.props.tools.find((function(e){return e.toolIdx===parseInt(s)})).columns;l.length===a.length?n.push(s):l.length>0?t["hidden"+s]=l.toString():t["hidden"+s]=null})),n.length>0?t.hidden=n.toString():t.hidden=null,O(t,this.props.history)}},{key:"setHiddenColsForTool",value:function(e,t){this.setState((function(n){return{hiddenCols:(0,c.Z)((0,c.Z)({},n.hiddenCols),{},(0,p.Z)({},e,t))}}))}},{key:"render",value:function(){var e=this;it().setAppElement(document.getElementById("root"));var t=this.props.tools.every((function(t){return t.columns.length===e.state.hiddenCols[t.toolIdx].length}));return(0,j.jsxs)(it(),{ariaHideApp:!1,className:"overlay",isOpen:!0,onRequestClose:function(){return e.handlePopState()},children:[(0,j.jsx)("div",{className:"link-overlay-header-container",children:(0,j.jsx)(y.G,{icon:rt.YIN,onClick:function(){return e.handlePopState()},className:"closing"})}),(0,j.jsx)("h1",{children:"Select the columns to display"}),(0,j.jsx)("table",{className:"selectRows",children:(0,j.jsxs)("tbody",{children:[(0,j.jsxs)("tr",{className:"selectColumn_all",children:[(0,j.jsx)("th",{}),this.renderColumnHeaders()]}),this.renderTools()]})}),(0,j.jsxs)("div",{className:"overlay__buttons",children:[(0,j.jsx)("button",{className:"btn",onClick:this.toggleAllColsHidden,children:this.state.isButtonOnDeselect?"Deselect all":"Select all"}),(0,j.jsx)("button",{className:"btn btn-apply",onClick:function(){return e.handlePopState()},disabled:t,children:"Apply and close"}),(0,j.jsx)("input",{})]})]})}}]),n}(i.Component),lt=(n(8350),n(9468)),at=function(e,t,n,i,r,s){return(0,j.jsxs)("div",{className:"setting".concat(s?" disabled":""),title:r,children:[(0,j.jsxs)("span",{className:"setting-label".concat(r?" with-tooltip":""),children:[e,":"]}),(0,j.jsxs)("select",{className:"setting-select",name:"setting-"+e,value:s?"disabled":t,onChange:n,disabled:s,children:[Object.values(i).map((function(t){return(0,j.jsx)("option",{value:t,name:t+" "+e,children:t},t)})),s?(0,j.jsx)("option",{value:"disabled",name:"disabled",children:"\u2e3a"}):""]})]})},ot=function(e,t,n,i,r){return(0,j.jsxs)("div",{className:"setting",title:r,children:[(0,j.jsxs)("span",{className:"setting-label".concat(r?" with-tooltip":""),children:[e,":"]}),(0,j.jsx)("select",{id:"setting-"+e,className:"setting-select",name:"setting-"+e,value:t,onChange:n,children:Object.entries(i).map((function(t){var n=(0,d.Z)(t,2),i=n[0],r=n[1];return(0,j.jsx)("optgroup",{label:i,children:r.map((function(t){return(0,j.jsx)("option",{value:t.value,name:t.name+" "+e,children:t.name},t.value)}))},i)}))})]})};function ct(e,t,n){var i=[1e8,1e7,1e6,1e5,1e4].find((function(e){return t>e})),r=i?i/1e3:1;return Array(Math.ceil(t/r)).fill().map((function(e,t){return t*r})).filter((function(t){return t>=e})).map((function(e){var t=n(e);return[Number.parseFloat(t[0].toPrecision(4)),Number.parseFloat(t[1].toPrecision(4))]}))}var ut=n(4391),dt=n.n(ut),ht=function(e){(0,a.Z)(n,e);var t=(0,o.Z)(n);function n(e){var i;return(0,s.Z)(this,n),(i=t.call(this,e)).refreshUrlState=function(){i.setState(i.setup())},i.checkForNumericalSelections=function(){return"ordinal"!==i.handleType(i.state.toolY,i.state.columnY)&&"ordinal"!==i.handleType(i.state.toolX,i.state.columnX)},i.renderData=function(){var e=[];i.hasInvalidLog=!1,i.state.areAllColsHidden||i.props.table.forEach((function(t){var n=t.results[i.state.toolX],r=t.results[i.state.toolY],s=n.values[i.state.columnX].raw,l=r.values[i.state.columnY].raw,a=void 0!==s&&null!==s&&void 0!==l&&null!==l,o=i.state.results===i.resultsOptions.correct;a&&(!o||o&&"correct"===n.category&&"correct"===r.category)&&(i.state.scaling===i.scalingOptions.logarithmic&&(s<=0||l<=0)?i.hasInvalidLog=!0:e.push({x:s,y:l,info:i.props.getRowName(t)}))})),i.setMinMaxValues(e),i.lineCount=e.length,i.dataArray=e;var t=i.state.regression!==i.regressionOptions.none,n=i.checkForNumericalSelections();if(t)if(0!==i.lineCount&&n){var r=e.map((function(e){return[parseFloat(e.x),parseFloat(e.y)]})),s=dt().linear(r),l=function(e,t,n,i,r){var s=function(e){return e[0]},l=function(e){return e[1]},a=function(e,t){return e+t};i=Math.floor(i),r=Math.ceil(r);var o=Math.sqrt(e.map((function(e,n){return[l(e),l(t[n])]})).map((function(e){return Math.pow(e[1]-e[0],2)})).reduce(a)/e.length),c=e.map((function(e){return s(e)})).reduce(a)/e.length,u=Math.sqrt(e.map((function(e){return Math.pow(s(e)-c,2)})).reduce(a)/e.length),d=ct(i,r,n),h=0===o||0===u?d.map((function(e){return 0})):d.map((function(t){return Number.parseFloat((1.96*o*Math.sqrt(1/e.length+Math.pow(s(t)-c,2)/((e.length-1)*Math.pow(u,2)))).toPrecision(4))}));return{upperBorderData:d.map((function(e,t){return[s(e),l(e)+h[t]]})),lowerBorderData:d.map((function(e,t){return[s(e),l(e)-h[t]]}))}}(r,s.points,s.predict,i.minX,i.maxX),a=[[i.minX,s.predict(i.minX)[1]],[i.maxX,s.predict(i.maxX)[1]]];s.points=Array.from(new Set(s.points.map(JSON.stringify)),JSON.parse).concat(a);var o=i.props.tools[i.state.toolX].columns[i.state.columnX].unit,c=i.props.tools[i.state.toolY].columns[i.state.columnY].unit,u="Estimation technique: ordinary least squares (OLS)\n                          Predictor variable (X-Axis) in ".concat(o,": ").concat(i.state.nameX,"\n                          Response variable (Y-Axis) in ").concat(c,": ").concat(i.state.nameY,"\n                          Regression coefficient: ").concat(s.equation[0],"\n                          Intercept: ").concat(s.equation[1],"\n                          Equation: ").concat(s.string,"\n                          Coefficient of Determination: ").concat(s.r2).replace(/^ +/gm,"");i.regressionData={regression:s,text:u,upperConfidenceBorderData:l.upperBorderData,lowerConfidenceBorderData:l.lowerBorderData}}else O({regression:i.regressionOptions.none})},i.setMinMaxValues=function(e){var t=e.map((function(e){return e.x})),n=e.map((function(e){return e.y}));i.maxX=i.findMaxValue(t),i.maxY=i.findMaxValue(n),i.minX=i.findMinValue(t),i.minY=i.findMinValue(n)},i.findMaxValue=function(e){var t=Math.max.apply(Math,(0,u.Z)(e));return t<3?3:t},i.findMinValue=function(e){var t=Math.min.apply(Math,(0,u.Z)(e));return t>2?1:t},i.renderRegressionLine=function(e){var t=i.prepareRegressionLineData(e);return(0,j.jsx)(lt.LU,{className:"regression-line",data:t,style:{stroke:"green"},onValueMouseOver:function(e,t){return i.setState({value:e})},onValueMouseOut:function(e,t){return i.setState({value:null})},opacity:"0"},"reg-line-"+e)},i.renderConfidenceIntervalLine=function(e,t){var n=i.prepareLineData(e);return(0,j.jsx)(lt.eh,{className:"regression-line",data:n,style:{stroke:"gray"}},"conf-line-".concat(t,"-").concat(e))},i.prepareRegressionLineData=function(e){return e.sort((function(e,t){return e[0]-t[0]})).map((function(e,t){var n=Math.round(100*i.regressionData.lowerConfidenceBorderData[t][1])/100,r=Math.round(100*i.regressionData.upperConfidenceBorderData[t][1])/100;return{x:e[0],y:e[1],"95% Confidence Interval":"[".concat(n,",").concat(r,"]")}})).sort((function(e,t){return e.x-t.x}))},i.prepareLineData=function(e){return e.map((function(e){return{x:e[0],y:e[1]}})).sort((function(e,t){return e.x-t.x}))},i.handleType=function(e,t){var n=i.props.tools[e].columns[t].type;return"text"===n||"status"===n?"ordinal":i.state.scaling===i.scalingOptions.logarithmic?"log":"linear"},i.extractAxisInfoByName=function(e,t){var n,r=e.split("-"),s=(0,d.Z)(r,2),l=s[0],a=s[1];return n={},(0,p.Z)(n,"data".concat(t),e),(0,p.Z)(n,"tool".concat(t),l),(0,p.Z)(n,"column".concat(t),a),(0,p.Z)(n,"name".concat(t),i.props.tools[l].columns.find((function(e){return e.colIdx===parseInt(a)})).display_title+" ("+H(i.props.tools[l])+")"),n},i.setAxis=function(e,t){var n;i.array=[];var r=e.target.value.split("-"),s=(0,d.Z)(r,2),l=s[0],a=s[1];a=a.replace("___","-"),O((n={},(0,p.Z)(n,"tool".concat(t),l),(0,p.Z)(n,"column".concat(t),a),n))},i.swapAxes=function(){i.array=[],O({toolX:i.state.toolY,toolY:i.state.toolX,columnX:i.state.columnY,columnY:i.state.columnX})},i.scalingOptions={linear:"Linear",logarithmic:"Logarithmic"},i.resultsOptions={all:"All",correct:"Correct only"},i.regressionOptions={none:"None",linear:"Linear"},i.lineOptgroupOptions={"f(x) = cx and f(x) = x/c":[{name:"c = 1.1",value:1.1},{name:"c = 1.2",value:1.2},{name:"c = 1.5",value:1.5},{name:"c = 2",value:2},{name:"c = 3",value:3},{name:"c = 4",value:4},{name:"c = 5",value:5},{name:"c = 6",value:6},{name:"c = 7",value:7},{name:"c = 8",value:8},{name:"c = 9",value:9},{name:"c = 10",value:10},{name:"c = 100",value:100},{name:"c = 1000",value:1e3},{name:"c = 10000",value:1e4},{name:"c = 100000",value:1e5},{name:"c = 1000000",value:1e6}]},i.defaultValues={scaling:i.scalingOptions.logarithmic,results:i.resultsOptions.correct,regression:i.regressionOptions.none,line:Object.values(i.lineOptgroupOptions)[0][11].value},i.state=i.setup(),i.maxX="",i.minX="",i.lineCount=1,i}return(0,l.Z)(n,[{key:"setup",value:function(){var e,t,n,i=H(this.props.tools[0])+" "+this.props.columns[0][1],r=(0,c.Z)((0,c.Z)({},this.defaultValues),X()),s=r.results,l=r.scaling,a=r.toolX,o=r.toolY,u=r.columnX,h=r.columnY,g=r.line,f=r.regression;if(B(a)||B(u)){var p=ie(this.props.tools,this.props.hiddenCols),m=(0,d.Z)(p,2),v=m[0],I=m[1];n=void 0===v,a=v,e="".concat(v,"-").concat(I)}else n=!1,e="".concat(a,"-").concat(u);if(B(o)||B(h)){var b=ie(this.props.tools,this.props.hiddenCols),C=(0,d.Z)(b,2),x=C[0],y=C[1];n=void 0===x,o=x,t="".concat(x,"-").concat(y)}else n=!1,t="".concat(o,"-").concat(h);var Z={dataX:e,dataY:t,results:s,scaling:l,regression:f,toolX:0,toolY:0,line:g,columnX:1,columnY:1,nameX:i,nameY:i,value:!1,areAllColsHidden:n};return e&&!n&&(Z=(0,c.Z)((0,c.Z)({},Z),this.extractAxisInfoByName(e,"X"))),t&&!n&&(Z=(0,c.Z)((0,c.Z)({},Z),this.extractAxisInfoByName(t,"Y"))),Z}},{key:"componentDidMount",value:function(){window.addEventListener("popstate",this.refreshUrlState)}},{key:"componentWillUnmount",value:function(){window.removeEventListener("popstate",this.refreshUrlState)}},{key:"renderAllSettings",value:function(){var e=this,t=this.props.tools.reduce((function(t,n,i){return Object.assign(t,(0,p.Z)({},H(n),n.columns.filter((function(t){return!e.props.hiddenCols[i].includes(t.colIdx)})).map((function(e,t){return{name:e.display_title,value:i+"-"+e.colIdx}}))))}),{});return(0,j.jsx)("div",{className:"settings-container",children:(0,j.jsxs)("div",{className:"settings-border-container",children:[(0,j.jsxs)("div",{className:"settings-subcontainer flexible-width",children:[ot("X-Axis",this.state.dataX,(function(t){return e.setAxis(t,"X")}),t),(0,j.jsx)("span",{className:"setting icon",children:(0,j.jsx)(y.G,{icon:rt.Ssp,onClick:function(){return e.swapAxes()}})}),ot("Y-Axis",this.state.dataY,(function(t){return e.setAxis(t,"Y")}),t)]}),(0,j.jsxs)("div",{className:"settings-subcontainer",children:[at("Scaling",this.state.scaling,(function(e){return O({scaling:e.target.value})}),this.scalingOptions),at("Results",this.state.results,(function(e){return O({results:e.target.value})}),this.resultsOptions,"In addition to which results are selected here, any filters will still be applied."),(0,j.jsx)("div",{className:"settings-subcontainer",children:ot("Aux. Lines",this.state.line,(function(e){return O({line:e.target.value})}),this.lineOptgroupOptions,"Adds the two auxiliary lines f(x) = cx and f(x) = x/c to the plot, with c being the chosen factor in the dropdown.")})]}),(0,j.jsx)("div",{className:"settings-subcontainer",children:at("Regression",this.state.regression,(function(t){e.checkForNumericalSelections()?O({regression:t.target.value}):alert("Regressions are only available for numerical selections.")}),this.regressionOptions,this.state.regression!==this.regressionOptions.none&&this.regressionData?this.regressionData.text:void 0)})]})})}},{key:"renderRegressionAndConfidenceIntervals",value:function(){var e=ct(Math.floor(this.minX),Math.ceil(this.maxX),this.regressionData.regression.predict);return[this.renderConfidenceIntervalLine(this.regressionData.upperConfidenceBorderData,"upper"),this.renderConfidenceIntervalLine(this.regressionData.lowerConfidenceBorderData,"lower"),this.renderRegressionLine(e)]}},{key:"render",value:function(){var e=this;this.renderData();var t=this.state.scaling===this.scalingOptions.linear,n=this.props.isFlexible?lt.wu:lt.dp,i=this.props.isFlexible?{height:window.innerHeight-200}:{height:1e3,width:1500},r=this.maxX>this.maxY?this.maxX:this.maxY;return(0,j.jsxs)("div",{className:"scatterPlot",children:[!this.state.areAllColsHidden&&this.renderAllSettings(),(0,j.jsxs)(n,(0,c.Z)((0,c.Z)({className:"scatterPlot__plot",margin:{left:90},yType:this.handleType(this.state.toolY,this.state.columnY),xType:this.handleType(this.state.toolX,this.state.columnX),xDomain:"ordinal"!==this.handleType(this.state.toolX,this.state.columnX)?[this.minX,this.maxX]:null,yDomain:"ordinal"!==this.handleType(this.state.toolY,this.state.columnY)?[this.minY,this.maxY]:null},i),{},{children:[(0,j.jsx)(lt.pW,{yType:this.handleType(this.state.toolY,this.state.columnY),xType:this.handleType(this.state.toolX,this.state.columnX)}),(0,j.jsx)(lt.xL,{yType:this.handleType(this.state.toolY,this.state.columnY),xType:this.handleType(this.state.toolX,this.state.columnX)}),(0,j.jsx)(lt.Ci,{className:"middle-line",axisStart:{x:t?0:1,y:t?0:1},axisEnd:{x:r,y:r},axisDomain:[0,1e10],style:{ticks:{stroke:"#009440",opacity:0},text:{stroke:"none",fill:"#009440",fontWeight:600,opacity:0}}}),(0,j.jsx)(lt.Ci,{axisStart:{x:t?0:this.state.line,y:t?0:1},axisEnd:{x:this.maxX,y:this.maxX/this.state.line},axisDomain:[0,1e10],style:{ticks:{stroke:"#ADDDE1",opacity:0},text:{stroke:"none",fill:"#6b6b76",fontWeight:600,opacity:0}}}),(0,j.jsx)(lt.Ci,{axisStart:{x:t?0:1,y:t?0:this.state.line},axisEnd:{x:this.maxX,y:this.maxX*this.state.line},axisDomain:[0,1e10],style:{ticks:{stroke:"#ADDDE1",opacity:0},text:{stroke:"none",fill:"#6b6b76",fontWeight:600,opacity:0}}}),(0,j.jsx)(lt.Kc,{title:this.state.nameX,tickFormat:function(e){return e},yType:this.handleType(this.state.toolY,this.state.columnY),xType:this.handleType(this.state.toolX,this.state.columnX)}),(0,j.jsx)(lt.B2,{title:this.state.nameY,tickFormat:function(e){return e},yType:this.handleType(this.state.toolY,this.state.columnY),xType:this.handleType(this.state.toolX,this.state.columnX)}),(0,j.jsx)(lt.e9,{data:this.dataArray,onValueMouseOver:function(t,n){return e.setState({value:t})},onValueMouseOut:function(t,n){return e.setState({value:null})}}),this.state.regression!==this.regressionOptions.none&&this.checkForNumericalSelections()&&this.regressionData&&0!==this.lineCount&&this.renderRegressionAndConfidenceIntervals(),this.state.value?(0,j.jsx)(lt.kW,{value:this.state.value}):null]})),this.state.areAllColsHidden?(0,j.jsx)("div",{className:"plot__noresults",children:"No columns to show!"}):0===this.lineCount&&(0,j.jsxs)("div",{className:"plot__noresults",children:["No"," ",this.state.results===this.resultsOptions.correct&&"correct"," ","results",this.props.table.length>0&&" with valid data points",this.hasInvalidLog&&" (negative values are not shown in logarithmic plot)"]})]})}}]),n}(i.Component),gt=function(e){(0,a.Z)(n,e);var t=(0,o.Z)(n);function n(e){var i;return(0,s.Z)(this,n),(i=t.call(this,e)).isColRelevantForTool=function(e,t){return i.isColVisible(t,e)&&"text"!==e.type&&"status"!==e.type},i.isToolRelevantForCol=function(e,t){var n=e.columns.find((function(e){return e.display_title===t}));return i.isToolVisible(e)&&n&&i.isColVisible(e.toolIdx,n.colIdx)},i.isColVisibleInAnyTool=function(e){return i.props.tools.some((function(t){return t.columns.some((function(n){return n.colIdx===e.colIdx&&i.isColVisible(t.toolIdx,n.colIdx)}))}))},i.isInVisibleRunsetSupportingScore=function(e){return i.props.tools.filter((function(e){return i.isToolVisible(e)})).some((function(t){return t.scoreBased&&t.columns.some((function(t){return t.display_title===e}))}))},i.isToolVisible=function(e){return e.columns.length!==i.props.hiddenCols[e.toolIdx].length},i.isColVisible=function(e,t){return!i.props.hiddenCols[e].includes(t)},i.updateDimensions=function(){i.setState({height:window.innerHeight})},i.refreshUrlState=function(){i.setState(i.setPlotData())},i.renderLegend=function(){if(i.state.isValue)return i.props.tools.filter((function(e){return i.isToolRelevantForCol(e,i.state.selection)})).map(H).map((function(e){return{title:e,disabled:i.state.isInvisible.some((function(t){return t===e})),strokeWidth:4}}));var e=i.props.tools[i.state.selection.split("-")[1]];return i.state.areAllColsHidden?[]:e.columns.filter((function(t){return i.isColRelevantForTool(t.colIdx,e.toolIdx)})).map((function(e){return{title:e.display_title,disabled:i.state.isInvisible.some((function(t){return t===e.display_title})),strokeWidth:4}}))},i.renderAll=function(){var e=i.state.selection;if(i.state.isValue){var t=i.state.plot===i.plotOptions.scoreBased?i.props.tools.filter((function(e){return e.scoreBased})):i.props.tools;t.forEach((function(t){return i.renderData(e,t.toolIdx,e+t.toolIdx)}))}else if(!i.state.areAllColsHidden){var n=i.state.selection.split("-")[1],r=i.props.tools[n];r.columns.filter((function(e){return i.isColRelevantForTool(e.colIdx,r.toolIdx)&&i.isColVisible(r.toolIdx,e.colIdx)})).forEach((function(e){return i.renderData(e.display_title,n,e.display_title)}))}},i.renderData=function(e,t,n){var r=i.state.plot===i.plotOptions.scoreBased,s="ordinal"===i.handleType(),l=i.props.tools[t].columns.findIndex((function(t){return t.display_title===e})),a=[],o=0;(!i.state.isValue||l>=0&&i.isColVisible(t,l))&&(a=i.props.table.map((function(e){var n=e.results[t],a=null;return"correct"===n.category||!i.state.isResultSelectionDisabled&&i.state.results!==i.resultsOptions.correct?(a=n.values[l].raw||null,s||null===a||(a=isFinite(+a)?+a:null)):r&&n.score&&"correct"!==n.category&&(o+=n.score),{value:a,rowName:i.props.getRowName(e),score:n.score}})),i.state.plot!==i.plotOptions.direct&&(a=a.filter((function(e){return null!==e.value})),a=i.sortArray(a,e))),i.hasInvalidLog=!1;var c=[],u=r?o:0;a.forEach((function(n){var s=n.value,l=n.rowName,a=n.score,o=i.state.scaling===i.scalingOptions.logarithmic&&s<=0;u+=r?a:1,null===s||o||c.push({x:u,y:s,task:l,series:i.state.isValue?H(i.props.tools[t]):e}),o&&(i.hasInvalidLog=!0)})),i[n]=c},i.sortArray=function(e,t){var n=i.possibleValues.find((function(e){return e.display_title===t}));return i.state.isValue&&["text","status"].includes(n.type)?e.sort((function(e,t){return e.value>t.value?1:t.value>e.value?-1:0})):e.sort((function(e,t){return+e.value-+t.value}))},i.renderColumns=function(){return i.possibleValues.map((function(e){var t=i.state.plot===i.plotOptions.scoreBased&&!i.isInVisibleRunsetSupportingScore(e.display_title);return(0,j.jsx)("option",{value:e.display_title,name:e.display_title,disabled:t,className:t?"disabled":"",children:e.display_title},e.display_title)}))},i.renderLines=function(){i.lineCount=0;var e=function(){return T[(i.lineCount-1)%T.length]};if(i.state.isValue)return i.props.tools.map((function(t,n){if(!i.isToolRelevantForCol(t,i.state.selection)||i.state.plot===i.plotOptions.scoreBased&&!t.scoreBased)return null;var r=i.state.selection,s=i[r+n],l=H(t);return i.lineCount++,(0,j.jsx)(lt.LU,{data:s,color:e(),opacity:i.handleLineState(l),onValueMouseOver:function(e,t){return i.setState({value:e})},onValueMouseOut:function(e,t){return i.setState({value:null})}},l)})).filter((function(e){return!!e}));if(!i.state.areAllColsHidden){var t=i.state.selection.split("-")[1],n=i.props.tools[t];return n.columns.filter((function(e){return i.isColRelevantForTool(e.colIdx,n.toolIdx)})).map((function(t){var n=i[t.display_title];return i.lineCount++,(0,j.jsx)(lt.LU,{data:n,color:e(),opacity:i.handleLineState(t.display_title),onValueMouseOver:function(e,t){return i.setState({value:e})},onValueMouseOut:function(e,t){return i.setState({value:null})}},t.display_title)}))}},i.handleLineState=function(e){return i.state.isInvisible.indexOf(e)<0?1:0},i.toggleShow=function(e){var t=e.target;i.setState((0,p.Z)({},t.name,t.checked))},i.handleType=function(){var e=i.state.selection,t=i.possibleValues.findIndex((function(t){return t.display_title===e})),n=i.state.isValue&&t>=0?i.possibleValues[t].type:null;return!i.state.isValue||"text"!==n&&"status"!==n?i.state.scaling===i.scalingOptions.linear?"linear":"log":"ordinal"},i.plotOptions={quantile:"Quantile Plot",direct:"Direct Plot"},i.scalingOptions={linear:"Linear",logarithmic:"Logarithmic"},i.resultsOptions={all:"All",correct:"Correct only"},i.defaultValues={plot:i.plotOptions.quantile,scaling:i.scalingOptions.logarithmic,results:i.resultsOptions.correct},i.checkForScoreBasedPlot(),i.possibleValues=[],i.lineCount=1,i.state=i.setPlotData(),i}return(0,l.Z)(n,[{key:"setPlotData",value:function(){var e=this,t=X(),n=(0,c.Z)((0,c.Z)({},this.defaultValues),t),i=n.selection,r=n.plot,s=n.scaling,l=n.results,a=i,o=this.props.tools.map((function(e){return e.toolIdx})).join(""),u=new RegExp("runset-["+o+"]"),d=void 0===i||!u.test(i);if(i=d?this.getColumnSelection(i):this.getRunsetSelection(i),r===this.plotOptions.scoreBased&&(d&&!this.isInVisibleRunsetSupportingScore(i)||!d)){this.setPossibleValues();var h=this.possibleValues.find((function(t){return"status"!==t.type&&e.isInVisibleRunsetSupportingScore(t.display_title)}));h||(h=this.possibleValues.find((function(t){return e.isInVisibleRunsetSupportingScore(t.display_title)}))),i=h?h.display_title:i,d=!0}return a&&i&&a!==i&&O({selection:i}),{selection:i,plot:r,scaling:s,results:l,isValue:d,isInvisible:[],areAllColsHidden:void 0===i,isResultSelectionDisabled:r===this.plotOptions.scoreBased}}},{key:"getColumnSelection",value:function(e){var t=e?this.props.tools.map((function(e){return e.columns})).flat().find((function(t){return t.display_title===e})):this.props.preSelection;if(!t||!this.isColVisibleInAnyTool(t)){var n=ie(this.props.tools,this.props.hiddenCols),i=(0,d.Z)(n,2),r=i[0],s=i[1];t=void 0!==r?this.props.tools.find((function(e){return e.toolIdx===r})).columns.find((function(e){return e.colIdx===s})):void 0}return t&&t.display_title}},{key:"getRunsetSelection",value:function(e){var t=this,n=parseInt(e.split("-")[1]);return this.props.tools.find((function(e){return e.toolIdx===n})).columns.some((function(e){return t.isColVisible(n,e.colIdx)}))||(n=ie(this.props.tools,this.props.hiddenCols)[0]),void 0!==n?"runset-"+n:void 0}},{key:"checkForScoreBasedPlot",value:function(){var e=this;this.props.tools.some((function(t){return t.scoreBased&&e.isToolVisible(t)}))&&(this.plotOptions=(0,c.Z)({scoreBased:"Score-based Quantile Plot"},this.plotOptions),this.props.tools.every((function(t){return t.scoreBased&&e.isToolVisible(t)}))&&(this.defaultValues.plot=this.plotOptions.scoreBased))}},{key:"componentDidMount",value:function(){window.addEventListener("resize",this.updateDimensions),window.addEventListener("popstate",this.refreshUrlState)}},{key:"componentWillUnmount",value:function(){window.removeEventListener("resize",this.updateDimensions),window.removeEventListener("popstate",this.refreshUrlState)}},{key:"setPossibleValues",value:function(){var e=this;this.props.tools.forEach((function(t){t.columns.forEach((function(n){e.isColVisible(t.toolIdx,n.colIdx)&&!e.possibleValues.some((function(e){return e.display_title===n.display_title}))&&e.possibleValues.push(n)}))}))}},{key:"renderAllSettings",value:function(){var e=this,t=this.state.plot===this.plotOptions.scoreBased?"Score-based Quantile Plots always show correct results offset by the score of wrong results. Any defined filters will still be applied.":"In addition to which results are selected here, any defined filters will still be applied.";return(0,j.jsxs)("div",{className:"settings-legend-container",children:[(0,j.jsx)("div",{className:"settings-container",children:(0,j.jsxs)("div",{className:"settings-border-container",children:[(0,j.jsxs)("div",{className:"settings-subcontainer flexible-width",children:[(0,j.jsxs)("div",{className:"setting flexible-width",children:[(0,j.jsx)("span",{className:"setting-label",children:"Selection:"}),(0,j.jsxs)("select",{className:"setting-select",name:"setting-Selection",value:this.state.selection,onChange:function(e){return O({selection:e.target.value})},children:[(0,j.jsx)("optgroup",{label:"Runsets",children:this.props.tools.map((function(t,n){var i=e.state.plot===e.plotOptions.scoreBased;return e.isToolVisible(t)?(0,j.jsx)("option",{value:"runset-"+n,name:"Runset "+n,disabled:i,className:i?"disabled":"",children:H(t)},"runset-"+n):null}))}),(0,j.jsx)("optgroup",{label:"Columns",children:this.renderColumns()})]})]}),at("Plot",this.state.plot,(function(e){return O({plot:e.target.value})}),this.plotOptions)]}),(0,j.jsxs)("div",{className:"settings-subcontainer",children:[at("Scaling",this.state.scaling,(function(e){return O({scaling:e.target.value})}),this.scalingOptions),at("Results",this.state.results,(function(e){return O({results:e.target.value})}),this.resultsOptions,t,this.state.isResultSelectionDisabled)]})]})}),(0,j.jsx)("div",{children:(0,j.jsx)(lt.Ri,{colors:T,items:this.renderLegend(),onItemClick:function(t,n){var i;if(i=t.title.toString(),!(e.state.isInvisible.indexOf(i)<0))return e.setState({isInvisible:e.state.isInvisible.filter((function(e){return e!==i}))});e.setState({isInvisible:e.state.isInvisible.concat([i])})}})})]})}},{key:"render",value:function(){this.setPossibleValues(),this.renderAll();var e=this.props.isFlexible?lt.wu:lt.dp,t=this.props.isFlexible?{height:window.innerHeight-200}:{height:1e3,width:1500};return(0,j.jsxs)("div",{className:"quantilePlot",children:[!this.state.areAllColsHidden&&this.renderAllSettings(),(0,j.jsxs)(e,(0,c.Z)((0,c.Z)({margin:{left:90},yType:this.handleType()},t),{},{children:[(0,j.jsx)(lt.pW,{}),(0,j.jsx)(lt.xL,{}),(0,j.jsx)(lt.Kc,{tickFormat:function(e){return e}}),(0,j.jsx)(lt.B2,{tickFormat:function(e){return e}}),this.state.value?(0,j.jsx)(lt.kW,{value:this.state.value}):null,this.renderLines()]})),this.state.areAllColsHidden?(0,j.jsx)("div",{className:"plot__noresults",children:"No columns to show!"}):0===this.lineCount&&(0,j.jsx)("div",{className:"plot__noresults",children:this.hasInvalidLog?"All results have undefined values":"No correct results"})]})}}]),n}(i.Component),ft=n(8282),pt=(n(8995),(0,ft.u7)(ft.ZP.Range)),mt=500,vt=setTimeout((function(){}),mt),It=function(e){(0,a.Z)(n,e);var t=(0,o.Z)(n);function n(e){var i;(0,s.Z)(this,n),i=t.call(this,e);var r=e.filter||{values:[]},l=r.values,a=r.min,o=r.max,c=r.type,u=r.number_of_significant_digits,d=0,h=0;if("measure"===c||"number"===c){var g=new te(u).build();d=g(a),h=g(o);var f=l&&l[0];if(f&&f.includes(":")){var p=i.handleMinMaxValue(f,u);d=p.min,h=p.max}}return i.state={title:e.availableFilters&&e.availableFilters.length?e.availableFilters[0].title:"",values:[],idx:k(["availableFilters",0,"idx"],0,e),active:!0,selectedDistincts:[],sliderMin:d,sliderMax:h,numericMin:null,numericMax:null},i}return(0,l.Z)(n,[{key:"sendFilterUpdate",value:function(e){var t=this.props.filter,n=t.type,i=t.categories;i&&i.includes("empty ")&&!e.includes(Ce)&&(e=e.concat(Ce)),0===e.length&&"status"===n?this.props.onFilterUpdate({values:[W],title:this.state.title||this.props.title}):this.props.onFilterUpdate({values:e,title:this.state.title||this.props.title})}},{key:"componentDidUpdate",value:function(e,t){if(this.props.filter&&(!e.filter||e.filter.values!==this.props.filter.values)){var n=this.props.filter,i=n.values,r=n.number_of_significant_digits,s=(0,d.Z)(i,1)[0];if(s&&s.includes(":")){var l=this.handleMinMaxValue(s,r),a=l.min,o=l.max;this.setState({sliderMin:a,sliderMax:o,numericMin:a,numericMax:o})}}}},{key:"handleMinMaxValue",value:function(e,t){var n=new te(t).build(),i=this.props.filter||{min:0,max:1/0},r=i.min,s=i.max,l=e.split(":"),a=(0,d.Z)(l,2),o=a[0],c=a[1];return{min:""!==o.trim()?o:n(r),max:""!==c.trim()?c:n(s)}}},{key:"handleNumberChange",value:function(e,t){var n,i,r={};if(r.sliderMin=Number(null!==(n=this.state.numericMin)&&void 0!==n?n:this.state.sliderMin),r.sliderMax=Number(null!==(i=this.state.numericMax)&&void 0!==i?i:this.state.sliderMax),r.sliderMin>r.sliderMax){var s=r.sliderMax;r.sliderMax=r.sliderMin,r.sliderMin=s}var l=r.sliderMin<=Number(e)?"":r.sliderMin,a=r.sliderMax>=Number(t)?"":r.sliderMax;r.values=["".concat(l,":").concat(a)],this.setState(r),this.sendFilterUpdate(r.values)}},{key:"render",value:function(){var e=this,t=this.props,n=t.filter,r=t.editable,s=t.availableFilters,l=i.createRef();return(0,j.jsxs)("div",{className:"filter-card",children:[function(t,i){return(0,j.jsx)("div",{className:"filter-card--header",children:i?(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)("span",{style:{marginLeft:"12px"},children:"Add filter for: "}),(0,j.jsxs)("select",{className:"filter-selection",defaultValue:"-1",ref:l,onChange:function(t){var n=t.target.value;-1!==n&&(e.setState({idx:-1,active:!0}),l.current.value="-1",e.props.addFilter(n))},children:[(0,j.jsx)("option",{value:"-1",disabled:!0,children:"Column"}),s.map((function(e){var t=e.idx,n=e.display_title;return(0,j.jsx)("option",{value:t,children:n},t)}))]})]}):(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)("h4",{className:"title",children:"".concat(n.display_title," ").concat(n.unit?"("+n.unit+")":"")}),(0,j.jsx)(y.G,{className:"delete-button",icon:rt.$aW,onClick:function(){e.props.removeFilter()}})]})})}(this.props.name,r),function(t){if(!t)return null;var n,r=t.title,s=t.type,l=t.number_of_significant_digits,a=t.categories,o=t.statuses,c=t.values,h=void 0===c?[]:c,g=t.min,f=t.max,p=i.createRef();if("status"===s)n=(0,j.jsxs)(j.Fragment,{children:[e.props.filter.categories&&e.props.filter.categories.includes("empty ")&&(0,j.jsxs)("div",{className:"filter-card--body--empty-rows",children:["Empty rows"," ",(0,j.jsx)("input",{type:"checkbox",name:"empty-rows",ref:p,checked:h.includes("empty "),onChange:function(t){var n="empty ";if(t.target.checked){var i=[].concat((0,u.Z)(h),[n]);e.setState({values:i}),e.sendFilterUpdate(i)}else{var r=S(n,h);e.setState({values:r}),e.sendFilterUpdate(r)}}})]}),"Category",(0,j.jsx)("ul",{className:"filter-card--body--list",children:a.filter((function(e){return"empty "!==e})).sort().map((function(t){var n=i.createRef();return(0,j.jsxs)("li",{children:[(0,j.jsx)("input",{type:"checkbox",name:"cat-".concat(t),checked:h.includes(t),ref:n,onChange:function(n){if(n.target.checked){var i=[].concat((0,u.Z)(h),[t]);e.setState({values:i}),e.sendFilterUpdate(i)}else{var r=S(t,h);e.setState({values:r}),e.sendFilterUpdate(r)}}}),(0,j.jsx)("label",{htmlFor:"cat-".concat(t),onClick:function(){return n.current.click()},className:t,children:t})]},t)}))}),"Status",(0,j.jsx)("ul",{className:"filter-card--body--list",children:o.sort().map((function(t){var n=i.createRef();return(0,j.jsxs)("li",{children:[(0,j.jsx)("input",{type:"checkbox",name:"stat-".concat(t),ref:n,checked:h.includes(t),onChange:function(n){if(n.target.checked){var i=[].concat((0,u.Z)(h),[t]);e.setState({values:i}),e.sendFilterUpdate(i)}else{var r=S(t,h);e.setState({values:r}),e.sendFilterUpdate(r)}}}),(0,j.jsx)("label",{htmlFor:"stat-".concat(t),onClick:function(){return n.current.click()},children:t})]},t)}))})]});else if("text"===s){var m=(0,d.Z)(h,1)[0];n=(0,j.jsx)("input",{type:"text",name:"text-".concat(r),placeholder:"Search for value",value:m,onChange:function(t){var n=t.target.value;clearTimeout(vt),e.setState({values:[n]}),vt=setTimeout((function(){e.sendFilterUpdate([n])}),mt)}})}else{var v=new te(l).build();g=v(g),f=v(f);var I=se(g),b=se(f),C=I.length>b.length?I:b;n=(0,j.jsxs)(j.Fragment,{children:[(0,j.jsxs)("div",{className:"filter-card--range-container",children:[(0,j.jsx)("b",{children:g}),(0,j.jsx)("b",{children:f})]}),(0,j.jsx)(pt,{min:Number(g),max:Number(f),step:C,defaultValue:[Number(g),Number(f)],value:[Number(e.state.sliderMin),Number(e.state.sliderMax)],onChange:function(t){var n=(0,d.Z)(t,2),i=n[0],r=n[1];e.setState({sliderMin:v(i),sliderMax:v(r)})},onAfterChange:function(t){var n=(0,d.Z)(t,2),i=n[0],r=n[1],s=v(i),l=v(r),a=s===g?"":s,o=l===f?"":l;e.setState({sliderMin:s,sliderMax:l,numericMin:i,numericMax:r,values:["".concat(a,":").concat(o)]}),e.sendFilterUpdate(["".concat(a,":").concat(o)])}}),(0,j.jsxs)("div",{className:"filter-card--range-input-fields",children:[(0,j.jsx)("label",{className:"range-input-fields--min",htmlFor:"inp-".concat(r,"-min"),children:"minimum"}),(0,j.jsx)("label",{className:"range-input-fields--max",htmlFor:"inp-".concat(r,"-max"),children:"maximum"}),(0,j.jsx)("input",{type:"number",name:"inp-".concat(r,"-min"),value:null!==e.state.numericMin?e.state.numericMin:e.state.sliderMin,lang:"en-US",step:C,onChange:function(t){var n=t.target.value;e.numericMinTimeout&&clearTimeout(e.numericMinTimeout),e.setState({numericMin:n}),e.numericMinTimeout=setTimeout((function(){return e.handleNumberChange(g,f)}),mt)}}),(0,j.jsx)("input",{type:"number",name:"inp-".concat(r,"-max"),step:C,lang:"en-US",value:null!==e.state.numericMax?e.state.numericMax:e.state.sliderMax,onChange:function(t){var n=t.target.value;e.numericMaxTimeout&&clearTimeout(e.numericMaxTimeout),e.setState({numericMax:n}),e.numericMaxTimeout=setTimeout((function(){return e.handleNumberChange(g,f)}),mt)}})]})]})}return(0,j.jsx)("div",{className:"filter-card--body",children:n})}(this.props.filter)]})}}]),n}(i.PureComponent),bt=function(e){(0,a.Z)(n,e);var t=(0,o.Z)(n);function n(e){var i;(0,s.Z)(this,n),i=t.call(this,e);var r=e.filters,l=e.toolName,a=e.currentFilters;for(var o in a)r[o]=(0,c.Z)((0,c.Z)((0,c.Z)({},r[o]),a[o]),{},{touched:r[o].touched+1,filtering:!0});return i.props.resetFilterHook((function(){return i.resetAllFilters()})),i.state={filters:r,toolName:l,addingFilter:!1,numCards:0},i}return(0,l.Z)(n,[{key:"getActiveFilters",value:function(){return this.state.filters.filter((function(e){return e.filtering})).sort((function(e,t){return e.numCards-t.numCards}))}},{key:"setFilter",value:function(e,t){var n=e.title,i=e.values,r=e.filtering,s=void 0===r||r,l=this.state.filters;l[t].values=i,l[t].filtering=s,l[t].touched+=1,this.setState({filters:(0,u.Z)(l)}),this.props.updateFilters({title:n,values:i},t)}},{key:"addFilter",value:function(e){var t=this.state,n=t.filters,i=t.numCards,r={filtering:!0,numCards:i,touched:0};"status"===n[e].type&&(r.values=[].concat((0,u.Z)(n[e].categories),(0,u.Z)(n[e].statuses))),n[e]=(0,c.Z)((0,c.Z)({},n[e]),r),this.setState({filters:n,addingFilter:!1,numCards:i+1})}},{key:"resetAllFilters",value:function(){var e=this.state.filters.filter((function(e){return e.filtering})),t=this.state.filters.map((function(e){return(0,c.Z)((0,c.Z)({},e),{},{filtering:!1,values:[]})}));this.setState({filters:(0,u.Z)(t)});var n,i=(0,f.Z)(e);try{for(i.s();!(n=i.n()).done;){var r=n.value;r.values&&this.props.updateFilters({title:r.display_title,values:[]},r.idx)}}catch(s){i.e(s)}finally{i.f()}}},{key:"removeFilter",value:function(e,t){var n=this.state.filters;n[e].filtering=!1,n[e].values=[],this.setState({filters:(0,u.Z)(n)}),this.props.updateFilters({title:t,values:[]},e)}},{key:"componentDidUpdate",value:function(e){var t=e.currentFilters,n=this.props.currentFilters;if(!Ie()(t,n)){var i=this.state.filters;for(var r in n)i[r]=(0,c.Z)((0,c.Z)((0,c.Z)({},i[r]),n[r]),{},{touched:i[r].touched+1,filtering:!0});i=i.map((function(e,t){var i=!(!n[t]&&0!==e.touched);return(0,c.Z)((0,c.Z)({},e),{},{filtering:i,values:i?e.values:[]})})),this.setState({filters:(0,u.Z)(i)})}}},{key:"render",value:function(){var e=this,t=this.getActiveFilters(),n=this.props.hiddenCols||[],i=this.state.filters.filter((function(e,t){return!e.filtering&&!n.includes(t)}));return(0,j.jsxs)("div",{className:"filterBox--container",children:[(0,j.jsx)("h4",{className:"section-header",children:this.state.toolName}),t.length>0&&t.map((function(t,n){return(0,j.jsx)(It,{onFilterUpdate:function(n){return e.setFilter(n,t.idx)},title:t.display_title,removeFilter:function(){return e.removeFilter(t.idx,t.display_title)},filter:t},"".concat(e.props.toolName,"-").concat(t.display_title,"-").concat(t.numCards))})),i.length&&(0,j.jsx)(It,{availableFilters:i,editable:"true",style:{marginBottom:20},addFilter:function(t){return e.addFilter(t)},onFilterUpdate:function(t){return e.setFilter(t)}})||void 0,(0,j.jsx)("br",{})]})}}]),n}(i.PureComponent),Ct=setTimeout((function(){}),500),xt=function(e){(0,a.Z)(n,e);var t=(0,o.Z)(n);function n(e){var i;return(0,s.Z)(this,n),(i=t.call(this,e)).state={values:i.extractFilters()},e.resetFilterHook((function(){return i.resetIdFilters()})),i}return(0,l.Z)(n,[{key:"resetIdFilters",value:function(){this.setState({values:{}}),this.sendFilterUpdate({})}},{key:"sendFilterUpdate",value:function(e){this.props.updateFilters(e)}},{key:"extractFilters",value:function(){for(var e=0,t={},n=0,i=Object.keys(this.props.ids);n<i.length;n++){t[i[n]]=k(["filters",e++],"",this.props)}return t}},{key:"componentDidUpdate",value:function(e){if(!Ie()(this.props.filters,e.filters)){var t=this.extractFilters();this.setState({values:t})}}},{key:"render",value:function(){var e=this,t=this.props.ids||{};return(0,j.jsx)("div",{className:"filterBox--container",children:(0,j.jsxs)("div",{className:"filter-card",children:[(0,j.jsx)("div",{className:"filter-card--header",children:(0,j.jsx)(j.Fragment,{children:(0,j.jsx)("h4",{className:"title",children:"Task filter"})})}),function(){var n=Object.entries(t).map((function(t){var n=(0,d.Z)(t,2),i=n[0],r=n[1],s=e.state.values[i]||"",l="text-task-".concat(i);return(0,j.jsxs)("div",{className:"task-id-filters",children:[(0,j.jsx)("label",{htmlFor:l,children:i}),(0,j.jsx)("br",{}),(0,j.jsx)("input",{type:"text",name:l,placeholder:r,value:s,onChange:function(t){var n=t.target.value;clearTimeout(Ct);var r={values:(0,c.Z)((0,c.Z)({},e.state.values),{},(0,p.Z)({},i,n))};Ct=setTimeout((function(){e.sendFilterUpdate((0,c.Z)((0,c.Z)({},e.state.values),{},(0,p.Z)({},i,n)))}),500),e.setState(r)}})]},l)}));return(0,j.jsx)("div",{className:"filter-card--body",children:n})}()]})})}}]),n}(i.PureComponent),yt=n(6123),Zt=function(e){(0,a.Z)(n,e);var t=(0,o.Z)(n);function n(e){var i;(0,s.Z)(this,n),i=t.call(this,e);var r=e.filtered;return i.listeners=[],i.resetFilterHook=function(e){return i.listeners.push(e)},i.state={filters:i.createFiltersFromReactTableStructure(r),idFilters:i.retrieveIdFilters(r)},i}return(0,l.Z)(n,[{key:"componentDidUpdate",value:function(e){Ie()(e.filtered,this.props.filtered)||this.setState({filters:this.createFiltersFromReactTableStructure(this.props.filtered),idFilters:this.retrieveIdFilters(this.props.filtered)})}},{key:"resetAllFilters",value:function(){this.resetAllContainers(),this.resetIdFilters()}},{key:"resetIdFilters",value:function(){this.setState({idFilters:null}),this.sendFilters({filter:this.state.filters,idFilter:null})}},{key:"resetAllContainers",value:function(){this.listeners.forEach((function(e){return e()}))}},{key:"retrieveIdFilters",value:function(e){var t=e.find((function(e){return"id"===e.id}));return t?t.values:[]}},{key:"createFiltersFromReactTableStructure",value:function(e){if(!e||!e.length)return[];var t,n=[],i=(0,f.Z)(e.flat());try{for(i.s();!(t=i.n()).done;){var r=t.value,s=r.id,l=r.value;if("id"!==s){var a=J(s),o=a.tool,c=a.name,u=a.column,d=n[o]||[];d[u]?d[u].values.push(l):d[u]={title:c,values:[l]},n[o]=d}}}catch(h){i.e(h)}finally{i.f()}return n}},{key:"flattenFilterStructure",value:function(){return Object.values(Object.values(this.state.filters))}},{key:"sendFilters",value:function(e){var t=e.filter,n=e.idFilter,i=(0,u.Z)(t.map((function(e,t){return null===e||void 0===e?null:e.map((function(e,n){return e.values.map((function(i){return{id:"".concat(t,"_").concat(e.title,"_").concat(n),value:i}}))}))})).flat(3).filter((function(e){return null!==e&&void 0!==e})));n&&n.length>0&&i.push({id:"id",values:n}),this.props.addTypeToFilter(i),this.props.setFilter(i,!0)}},{key:"updateFilters",value:function(e,t,n){var i=(0,u.Z)(this.state.filters),r=this.state.idFilters;i[e]=i[e]||[],i[e][t]=n,this.setState({filters:i}),this.sendFilters({filter:i,idFilter:r})}},{key:"updateIdFilters",value:function(e){var t=Object.keys(this.props.ids).map((function(t){return e[t]})),n=t.some((function(e){return""!==e&&!B(e)}))?t:void 0;this.setState({idFilters:n}),this.sendFilters({filter:this.state.filters,idFilter:n})}},{key:"render",value:function(){var e=this,t=this.props.hiddenCols||[];return(0,j.jsxs)("div",{className:yt("filterBox",{"filterBox--hidden":!this.props.visible}),children:[(0,j.jsxs)("div",{className:"filterBox--header",children:[(0,j.jsx)(y.G,{icon:rt.YIN,className:"filterBox--header--icon",onClick:this.props.hide}),this.props.headerComponent,(0,j.jsx)(y.G,{icon:rt.$aW,className:"filterBox--header--reset-icon",onClick:function(){return e.resetAllFilters()}})]}),(0,j.jsxs)("div",{className:"filter-card--container",children:[(0,j.jsx)(xt,{ids:this.props.ids,updateFilters:function(t){return e.updateIdFilters(t)},resetFilterHook:this.resetFilterHook,filters:this.state.idFilters}),this.props.filterable.map((function(n,i){return(0,j.jsx)(bt,{resetFilterHook:e.resetFilterHook,updateFilters:function(t,n){return e.updateFilters(i,n,t)},currentFilters:e.state.filters[i]||[],toolName:n.name,filters:n.columns,hiddenCols:t[i]},"filtercontainer-".concat(i))}))]})]})}}]),n}(i.PureComponent),jt=n(6123),At=n.n(jt),Ft=n(9737),Wt=n.n(Ft),Nt=n(7177),Bt=n.n(Nt),Gt=function(e){(0,a.Z)(n,e);var t=(0,o.Z)(n);function n(e){var i;return(0,s.Z)(this,n),(i=t.call(this,e)).prepareTextForRendering=function(){if(""!==i.props.yamlText){var e=Bt().parseDocument(i.props.yamlText,{prettyErrors:!0}),t=e.get("input_files");t&&(Array.isArray(t.items)?t.items.forEach((function(e){e.value=i.encloseFileInTags(e.value)})):e.set("input_files",i.encloseFileInTags(t)));var n=e.get("properties");n&&Array.isArray(n.items)&&n.items.forEach((function(e){Array.isArray(e.items)&&e.items.forEach((function(e){"property_file"===e.key.value&&(e.value.value=i.encloseFileInTags(e.value.value))}))})),i.setState({content:e})}},i.encloseFileInTags=function(e){return i.state.splitterTag+i.state.fileTag+e+i.state.fileTag+i.state.splitterTag},i.loadFileInViewer=function(e,t){e.preventDefault(),i.props.loadNewFile(t)},i.state={splitterTag:"<splitter#9d81y23>",fileTag:"<file#092nt43>",content:i.props.yamlText},i}return(0,l.Z)(n,[{key:"componentDidMount",value:function(){this.prepareTextForRendering()}},{key:"componentDidUpdate",value:function(e){e.yamlText!==this.props.yamlText&&this.prepareTextForRendering()}},{key:"render",value:function(){var e=this;if(this.state.content.errors&&this.state.content.errors.length>0)return(0,j.jsx)(j.Fragment,{children:(0,j.jsxs)("div",{className:"link-overlay-text",children:["Errors parsing YAML file:",(0,j.jsx)("ul",{children:this.state.content.errors.map((function(e,t){return(0,j.jsx)("li",{children:(0,j.jsx)("pre",{children:e.message})},t)}))}),(0,j.jsx)("pre",{children:this.props.yamlText}),";"]})});Bt().scalarOptions.str.fold={lineWidth:0};var t=this.state.content.toString().split(this.state.splitterTag).map((function(t){return t.match("^".concat(e.state.fileTag,"(?:.)+").concat(e.state.fileTag,"$"))?(t=t.replace(new RegExp(e.state.fileTag,"g"),""),(0,j.jsx)("a",{onClick:function(n){return e.loadFileInViewer(n,t)},className:"link-overlay-file-link",href:e.props.createHref(t),children:t},t)):t}));return(0,j.jsx)("pre",{className:"link-overlay-text",children:t})}}]),n}(i.Component),wt=n(1842);wt.jQ({useWebWorkers:!1});var Yt={},St=function(e){(0,a.Z)(n,e);var t=(0,o.Z)(n);function n(e){var i;(0,s.Z)(this,n),(i=t.call(this,e)).loadNewFile=function(e){var t=i.createFileUrl(e);i.setState({isYAML:i.isYAMLFile(e),isSecondLevel:!0,content:"loading file: ".concat(t)}),i.loadFile(t)},i.loadOriginalFile=function(){i.setState({isYAML:i.isYAMLFile(i.props.link),isSecondLevel:!1,content:"loading file: ".concat(i.props.link),error:void 0}),i.loadFile(i.props.link)},i.loadOriginalFileIfEnter=function(e){"Enter"===e.key&&i.loadOriginalFile()},i.createFileUrl=function(e){return Wt().join(i.props.link,"../"+e)},i.loadFile=i.loadFileXMLHttpRequest,i.loadFileFromZip=function(e){var t=decodeURIComponent(e),n=t.lastIndexOf("/")>t.lastIndexOf("\\")?"/":"\\",r=t.lastIndexOf(n),s=t.substring(0,r)+".zip",l=t.split(n),a="".concat(l[l.length-2],"/").concat(l[l.length-1]);s in Yt?i.loadFileFromZipEntries(Yt[s],a,s):i.readZipArchive(s,a)},i.readZipArchive=function(e,t){new wt.Mr(new wt.R(e)).getEntries().then((function(n){i.handleZipEntries(n,t,e)}),(function(n){i.readZipArchiveNoHttpRange(e,t)}))},i.readZipArchiveNoHttpRange=function(e,t){new wt.Mr(new wt.pE(e)).getEntries().then((function(n){i.handleZipEntries(n,t,e)}),(function(n){i.readZipArchiveManually(e,t)}))},i.readZipArchiveManually=function(e,t){try{var n=new XMLHttpRequest;n.responseType="arraybuffer",n.addEventListener("load",(function(){var r=new Uint8Array(n.response);new wt.Mr(new wt.I8(r)).getEntries().then((function(n){return i.handleZipEntries(n,t,e)}),i.setError)}),!1),n.addEventListener("error",i.setError,!1),n.open("GET",e),n.send()}catch(r){i.setError('HTTP request for the file "'.concat(t,'" failed'),r)}},i.handleZipEntries=function(e,t,n){Yt[n]=e,i.loadFileFromZipEntries(e,t,n)},i.loadFileFromZipEntries=function(e,t,n){var r=e.find((function(e){return e.filename===t}));r?r.getData(new wt.Ek).then((function(e){i.setState({content:e})})):i.setError('Could not find the file "'.concat(t,'" in "').concat(n,'"'))},i.setError=function(e,t){var n=t&&"string"===typeof t?t:e;i.setState({error:"".concat(n)})},i.handlePopState=function(){window.history.back(),window.addEventListener("click",i.props.close,!1)},i.renderHelpMessageForLocalLogs=function(){if("file:"!==window.location.protocol)return null;var e=(0,j.jsxs)(j.Fragment,{children:[(0,j.jsxs)("p",{children:["If you are using ",(0,j.jsx)("strong",{children:"Chrome"})," or a Chrome-based browser, try launching it with the command-line option"," ",(0,j.jsx)("strong",{children:(0,j.jsx)("code",{children:"--allow-file-access-from-files"})}),"."]}),(0,j.jsxs)("p",{children:["If you are using ",(0,j.jsx)("strong",{children:"Firefox"}),", please open the extended settings by entering ",(0,j.jsx)("code",{children:"about:config"})," in the URL bar, search for"," ",(0,j.jsx)("strong",{children:(0,j.jsx)("code",{children:"security.fileuri.strict_origin_policy"})})," ","and set this option to ",(0,j.jsx)("code",{children:"false"})," by double-clicking on it and restart your browser (",(0,j.jsx)("a",{href:"https://kb.mozillazine.org/Security.fileuri.strict_origin_policy",children:"more details"}),")."]}),(0,j.jsx)("p",{children:(0,j.jsx)("strong",{children:"Note that these settings will allow local web pages to access all of your files, so make sure to not open any untrusted local HTML documents."})})]}),t=new URL(i.state.currentFile,document.baseURI),n=function(e,t){var n=e.pathname.split("/"),i=t.pathname.split("/"),r=n.findIndex((function(e,t){return e!==i[t]}));return[n.slice(0,r).join("/"),n.slice(r).join("/")]}(window.location,t),r=(0,d.Z)(n,2),s=r[0],l=r[1];if(":"===window.location.pathname[2]){if(!s)return(0,j.jsxs)(j.Fragment,{children:[e,(0,j.jsx)("p",{children:"Alternatively, you can start a local web server serving the directories with the tables and result files, but for doing so you first need to make sure that table and result files are on the same partition."})]});"/"===s[0]&&(s=s.substring(1))}var a="127.0.0.1",o=8e3,c="http://".concat(a,":").concat(o,"/").concat(l).concat(window.location.hash);return(0,j.jsxs)(j.Fragment,{children:[e,(0,j.jsxs)("p",{children:["Alternatively, you can start a local web server serving the directories with the tables and result files.",(0,j.jsx)("br",{}),"To do so, execute the following command and then open"," ",(0,j.jsx)("a",{href:c,children:"this link"})," (adjust the port number ",o," if it is already used on your system):",(0,j.jsx)("br",{}),(0,j.jsx)(F,{children:(0,j.jsxs)("code",{children:["python3 -m http.server -b ",a," ",o," -d ",s||"/"]})})]})]})};var r=!!e.link&&i.isYAMLFile(e.link);return i.state={isYAML:r,content:"loading file: ".concat(e.link),currentFile:e.link,isSecondLevel:!1},i}return(0,l.Z)(n,[{key:"componentDidMount",value:function(){this.loadFile(this.props.link),window.history.pushState({},"",""),window.addEventListener("popstate",this.props.close,!1)}},{key:"componentDidUpdate",value:function(){var e=document.getElementById("modal-container");e&&e.focus()}},{key:"componentWillUnmount",value:function(){window.removeEventListener("popstate",this.props.close,!1),window.removeEventListener("click",this.props.close,!1)}},{key:"isYAMLFile",value:function(e){return e.endsWith(".yml")}},{key:"loadFileFetch",value:function(){var e=(0,We.Z)((0,Fe.Z)().mark((function e(t){var n,i;return(0,Fe.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!t){e.next=19;break}return this.setState({currentFile:t}),e.prev=2,e.next=5,fetch(t);case 5:if(n=e.sent,!Y(n.status)){e.next=13;break}return e.next=9,n.text();case 9:i=e.sent,this.setState({content:i}),e.next=14;break;case 13:throw Error("Received response status ".concat(n.status));case 14:e.next=19;break;case 16:e.prev=16,e.t0=e.catch(2),this.loadFileFromZip(t);case 19:case"end":return e.stop()}}),e,this,[[2,16]])})));return function(t){return e.apply(this,arguments)}}()},{key:"loadFileXMLHttpRequest",value:function(e){var t=this;if(e)try{this.setState({currentFile:e});var n=new XMLHttpRequest;n.addEventListener("load",(function(){if(Y(n.status)){var i=n.responseText;t.setState({content:i})}else t.loadFileFromZip(e)})),n.addEventListener("error",(function(){return t.loadFileFromZip(e)})),n.open("GET",e),n.send()}catch(i){this.loadFileFromZip(e)}}},{key:"render",value:function(){var e=this;return it().setAppElement(document.getElementById("root")),(0,j.jsxs)(it(),{id:"modal-container",ariaHideApp:!1,className:At()("overlay",{"second-level":this.state.isSecondLevel}),isOpen:!0,onRequestClose:function(){return e.handlePopState()},children:[(0,j.jsxs)("div",{className:"link-overlay-header-container",children:[(0,j.jsx)(y.G,{icon:rt.YIN,onClick:function(){return e.handlePopState()},className:"closing"}),this.state.isSecondLevel?(0,j.jsxs)("span",{className:"link-overlay-back-button",tabIndex:"0",role:"button",onClick:this.loadOriginalFile,onKeyDown:this.loadOriginalFileIfEnter,children:[(0,j.jsx)(y.G,{className:"link-overlay-back-icon",icon:rt.acZ}),"Back to task definition"]}):""]}),this.state.error?(0,j.jsxs)("div",{className:"link-overlay-text",children:[(0,j.jsxs)("p",{style:{marginTop:"0"},children:["Error while loading content (",this.state.error,")."]}),(0,j.jsxs)("p",{children:["This could be a problem of the"," ",(0,j.jsx)("a",{href:"https://en.wikipedia.org/wiki/Same-origin_policy",children:"same-origin policy"})," ","of your browser."]}),this.renderHelpMessageForLocalLogs(),(0,j.jsxs)("p",{children:["You can also try to download the file:"," ",(0,j.jsx)("a",{href:this.state.currentFile,children:this.state.currentFile})]})]}):this.state.isYAML?(0,j.jsx)(Gt,{yamlText:this.state.content,createHref:this.createFileUrl,loadNewFile:this.loadNewFile}):(0,j.jsx)("pre",{className:"link-overlay-text",children:this.state.content})]})}}]),n}(i.Component),Vt=function(e){(0,a.Z)(n,e);var t=(0,o.Z)(n);function n(){var e;(0,s.Z)(this,n);for(var i=arguments.length,r=new Array(i),l=0;l<i;l++)r[l]=arguments[l];return(e=t.call.apply(t,[this].concat(r))).render=function(){return(0,j.jsxs)("button",{className:e.props.className||"reset",onClick:e.props.onClick,disabled:B(e.props.enabled)?!e.props.isFiltered:!e.props.enabled,children:[(0,j.jsxs)("span",{children:["Showing ",(0,j.jsx)("span",{className:"highlight",children:e.props.filteredCount})," of"," "]}),(e.props.className||"").includes("tooltip")&&(0,j.jsx)("span",{className:"tooltiptext tooltip-bottom",children:"Open filter menu"}),e.props.totalCount," tasks",!(e.props.className||"").includes("header")&&(0,j.jsx)(y.G,{icon:rt.G_j,className:"filter-icon"})]})},e}return(0,l.Z)(n)}(i.Component);n(9e3);var kt=[{key:"summary",title:"Summary",path:"/"},{key:"table",title:"Table",path:"/table"},{key:"quantile",title:"Quantile Plot",path:"/quantile"},{key:"scatter",title:"Scatter Plot",path:"/scatter"},{key:"info",title:"Info",path:"/info",icon:(0,j.jsx)(y.G,{icon:rt.Fuz})}],Rt=function(){return(kt.find((function(e){return e.path===document.location.hash.split("?")[0].substr(1)}))||{key:"summary"}).key},Ht=function(e){(0,a.Z)(n,e);var t=(0,o.Z)(n);function n(e){var r;(0,s.Z)(this,n),(r=t.call(this,e)).addTypeToFilter=function(e){return e.filter((function(e){return"id"!==e.id})).forEach((function(e){var t=e.id.split("_"),n=(0,d.Z)(t,3),i=n[0],s=n[2],l=r.state.tools[i].columns[s].type;e.type=l}))},r.getFiltersFromUrl=function(){var e=r.filterUrlRetriever()||[];return r.addTypeToFilter(e),Ie()(r.lastFiltered,e)?null:e},r.updateFiltersFromUrl=function(){var e=r.getFiltersFromUrl();e&&(r.filteredData=r.runFilter(e),r.setState({tableData:r.filteredData,filtered:e}),r.lastFiltered=e)},r.updateState=function(){return r.setState({active:Rt(),hiddenCols:ne(r.state.tools)})},r.toggleSelectColumns=function(e){e.stopPropagation(),r.setState((function(e){return{showSelectColumns:!e.showSelectColumns}}))},r.toggleLinkOverlay=function(e,t){e.preventDefault(),r.setState((function(e){return{showLinkOverlay:!e.showLinkOverlay,link:t}}))},r.setFilter=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];r.filteredData=t?e:e.map((function(e){return e._original}))},r.filterPlotData=function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];r.lastImmediate&&clearImmediate(r.lastImmediate),r.lastImmediate=setImmediate((function(){r.filterUrlSetter(e,r.routerRef.current.history),r.lastFiltered=e.filter((function(e){return e.values&&e.values.length>0||e.value}))})),t&&r.setFilter(r.runFilter(e),!0),r.setState({tableData:r.filteredData,filtered:e})},r.resetFilters=function(){r.setState({tableData:r.originalTable,filtered:[]})},r.findAllValuesOfColumn=function(e,t){return r.originalTools.map((function(n,i){return n.columns.map((function(s,l){if(e(n,s)){var a=r.originalTable.map((function(e){return t(e.results[i],e.results[i].values[l])})).filter(Boolean);return(0,u.Z)(new Set(a)).sort()}}))}))},r.getRowName=function(e){return e.id.filter((function(e){return e})).join(" | ")},r.getRelevantUrlParams=function(){return(document.location.href.split("?")[1]||"").split("&").filter((function(e){return e.startsWith("hidden")||e.startsWith("filter")})).join("&")},r.switchToQuantile=function(e){r.setState({quantilePreSelection:e});var t=r.getRelevantUrlParams();document.location.hash="#/quantile"+(t?"?"+t:"")};var l,a=function(e){var t=e.head,n=e.tools,i=e.rows,r=e.stats,s=e.props,l=e.initial;return{tableHeader:t,taskIdNames:t.task_id_names,tools:n.map((function(e,t){return(0,c.Z)((0,c.Z)({},e),{},{toolIdx:t,columns:e.columns.map((function(e,t){return(0,c.Z)((0,c.Z)({},e),{},{colIdx:t})})),scoreBased:i.every((function(e){return void 0!==e.results[t].score}))})})),columns:n.map((function(e){return e.columns.map((function(e){return e.title}))})),tableData:i,stats:r,properties:s,initial:l}}(e.data),o=a.tableHeader,h=a.taskIdNames,g=a.tools,p=a.columns,m=a.tableData,v=a.stats,b=a.initial;b&&!document.location.href.includes("#")&&(l=b,document.location.href=encodeURI("".concat(document.location.href,"#").concat(l)));var C=function(e){var t=e.tools,n=e.rows;return t.map((function(e,t){var i,r=e.tool,s=e.date,l=e.niceName,a="".concat(r," ").concat(s," ").concat(l),o=e.columns.map((function(e,t){if(e)return"status"===e.type?(i=t,(0,c.Z)((0,c.Z)({},e),{},{categories:{},statuses:{},idx:t})):"text"===e.type?(0,c.Z)((0,c.Z)({},e),{},{distincts:{},idx:t}):(0,c.Z)((0,c.Z)({},e),{},{min:1/0,max:-1/0,idx:t})}));B(i)||(o[i]=(0,c.Z)((0,c.Z)({},o[i]),{},{categories:{},statuses:{}}));var u,d=(0,f.Z)(n);try{for(d.s();!(u=d.n()).done;){var h=u.value.results[t];for(var g in B(i)||(o[i].categories["".concat(h.category," ")]=!0),h.values){var p=h.values[g].raw,m=o[g];m&&!B(p)&&("status"===m.type?m.statuses[p]=!0:"text"===m.type?m.distincts[p]=!0:(m.min=Math.min(m.min,Number(p)),m.max=Math.max(m.max,Number(p))))}}}catch(v){d.e(v)}finally{d.f()}return{name:a,columns:o.map((function(e){var t=e.distincts,n=e.categories,i=e.statuses,r=(0,I.Z)(e,be);return t?(0,c.Z)((0,c.Z)({},r),{},{distincts:Object.keys(t)}):n?(0,c.Z)((0,c.Z)({},r),{},{categories:Object.keys(n),statuses:Object.keys(i)}):r}))}}))}(r.props.data);r.originalTable=m,r.originalTools=g,r.taskIdNames=h,r.columns=p,r.stats=v,r.tableHeader=o,r.filteredData=[],r.routerRef=i.createRef(),r.state={tools:g,tableData:m,filterable:C,showSelectColumns:!1,showLinkOverlay:!1,filtered:[],filterBoxVisible:!1,active:Rt(),quantilePreSelection:g[0].columns[1],hiddenCols:ne(g)},r.statusValues=r.findAllValuesOfColumn((function(e,t){return"status"===t.type}),(function(e,t){return G(t)})),r.originalTools.forEach((function(e,t){return e.columns.filter((function(e){return"status"===e.type})).forEach((function(e,n){r.originalTable.some((function(e){return"empty"===e.results[t].category}))&&r.statusValues[t][n].push(Ce)}))})),r.categoryValues=r.findAllValuesOfColumn((function(e,t){return"status"===t.type}),(function(e,t){return e.category}));var x=r.categoryValues.map((function(e){return e&&e.map((function(e){return e&&e.map((function(e){return"".concat(e," ")}))}))}));r.filterUrlSetter=q(r.statusValues,x),r.filterUrlRetriever=function(e,t){var n=Q({categoryValues:t,statusValues:e});return function(e){var t=X(e);return t.filter?n(t.filter):null}}(r.statusValues,x);var y=r.getFiltersFromUrl();return y&&(r.filteredData=r.runFilter(y),r.lastFiltered=y,r.state=(0,c.Z)((0,c.Z)({},r.state),{},{tableData:r.filteredData,filtered:y})),r}return(0,l.Z)(n,[{key:"componentDidMount",value:function(){var e=this;this.removeHistoryListener=this.routerRef.current.history.listen((function(t,n){e.updateState(),"POP"===n&&e.updateFiltersFromUrl()}))}},{key:"componentWillUnmount",value:function(){this.removeHistoryListener()}},{key:"runFilter",value:function(e){var t=e.reduce((function(e,t){var n=t.id,i=t.value,r=t.type,s=t.values;if(B(i)&&B(s)||"string"===typeof i&&"all"===i.trim())return e;if("id"===n)return e.id={value:i,values:s},e;var l,a=J(n),o=a.tool,c=a.column;if("diff"===i)return e.diff||(e.diff=[]),e.diff.push({col:c}),e;if(e[o]||(e[o]={}),N({type:r})&&i.includes(":")){var u=i.split(":"),h=(0,d.Z)(u,2),g=h[0],f=h[1];l={min:g=""===g?-1/0:Number(g),max:f=""===f?1/0:Number(f)}}else l=" "===i[i.length-1]?{category:i.substr(0,i.length-1)}:"status"===r?{status:i}:{value:i};return e[o][c]||(e[o][c]=[]),e[o][c].push(l),e}),{});return xe(t)(this.originalTable)}},{key:"render",value:function(){var e,t,n=this,i=function(e){var t=e.className,i=e.isReset,r=void 0!==i&&i,s=e.onClick,l=e.enabled;return(0,j.jsx)(Vt,{className:t,showFilterText:r,onClick:s,enabled:l,isFiltered:!!n.state.filtered.length,resetFilters:n.resetFilters,filteredCount:n.state.tableData.length,totalCount:n.originalTable.length})},r=this.getRelevantUrlParams();return(0,j.jsx)(h.UT,{ref:this.routerRef,children:(0,j.jsxs)("div",{className:"overview",children:[(0,j.jsxs)("div",{className:"overview-container",children:[(0,j.jsx)(Zt,{headerComponent:i({className:"filterBox--header--reset",isReset:!0,enabled:!1}),tableHeader:this.tableHeader,tools:this.state.tools,selectColumn:this.toggleSelectColumns,filterable:this.state.filterable,setFilter:this.filterPlotData,resetFilters:this.resetFilters,filtered:this.state.filtered,visible:this.state.filterBoxVisible,hiddenCols:this.state.hiddenCols,hide:function(){n.setState({filterBoxVisible:!1})},ids:(e=this.originalTable,t=this.taskIdNames,k(["0","id"],[],e).reduce((function(e,n,i){return(0,c.Z)((0,c.Z)({},e),{},(0,p.Z)({},t[i],n))}),{})),addTypeToFilter:this.addTypeToFilter}),(0,j.jsxs)("div",{className:"menu",children:[kt.map((function(e){var t=e.key,i=e.title,s=e.path,l=e.icon;return(0,j.jsxs)(h.rU,{className:At()("menu-item",{selected:n.state.active===t}),to:s+(r?"?"+r:""),onClick:function(){return n.setState((function(){return{active:t}}))},children:[i," ",l||""]},s)})),i({className:"reset tooltip",enabled:!0,onClick:function(){n.setState({filterBoxVisible:!0})}})]}),(0,j.jsx)("div",{className:"route-container",children:(0,j.jsxs)(g.rs,{children:[(0,j.jsx)(g.AW,{exact:!0,path:"/",children:(0,j.jsx)(qe,{tools:this.state.tools,tableHeader:this.tableHeader,version:this.props.data.version,selectColumn:this.toggleSelectColumns,stats:this.stats,onStatsReady:this.props.onStatsReady,switchToQuantile:this.switchToQuantile,tableData:this.state.tableData,hiddenCols:this.state.hiddenCols,filtered:this.state.filtered.length>0})}),(0,j.jsx)(g.AW,{path:"/table",children:(0,j.jsx)(Ae,{tableData:this.state.tableData,tools:this.state.tools,selectColumn:this.toggleSelectColumns,filterPlotData:this.filterPlotData,filters:this.state.filtered,toggleLinkOverlay:this.toggleLinkOverlay,statusValues:this.statusValues,categoryValues:this.categoryValues,hiddenCols:this.state.hiddenCols,addTypeToFilter:this.addTypeToFilter})}),(0,j.jsx)(g.AW,{path:"/quantile",children:(0,j.jsx)(gt,{table:this.state.tableData,tools:this.state.tools,preSelection:this.state.quantilePreSelection,getRowName:this.getRowName,hiddenCols:this.state.hiddenCols,isFlexible:this.props.renderPlotsFlexible})}),(0,j.jsx)(g.AW,{path:"/scatter",children:(0,j.jsx)(ht,{table:this.state.tableData,columns:this.columns,tools:this.state.tools,getRowName:this.getRowName,hiddenCols:this.state.hiddenCols,isFlexible:this.props.renderPlotsFlexible})}),(0,j.jsx)(g.AW,{path:"/info",children:(0,j.jsx)(tt,{version:this.props.data.version,selectColumn:this.toggleSelectColumns})})]})})]}),(0,j.jsxs)("div",{children:[this.state.showSelectColumns&&(0,j.jsx)(st,{close:this.toggleSelectColumns,currColumns:this.columns,tableHeader:this.tableHeader,tools:this.state.tools,hiddenCols:this.state.hiddenCols,history:this.routerRef.current.history}),this.state.showLinkOverlay&&(0,j.jsx)(St,{close:this.toggleLinkOverlay,link:this.state.link,toggleLinkOverlay:this.toggleLinkOverlay})]})]})})}}]),n}(i.Component);var Tt=function(e){(0,a.Z)(n,e);var t=(0,o.Z)(n);function n(){return(0,s.Z)(this,n),t.apply(this,arguments)}return(0,l.Z)(n,[{key:"render",value:function(){return(0,j.jsx)("div",{className:"App",children:(0,j.jsx)("main",{children:(0,j.jsx)(Ht,{data:window.data,renderPlotsFlexible:!0,onStatsReady:this.props.onStatsReady})})})}}]),n}(i.Component),Xt=Tt;r.render((0,j.jsx)(Xt,{}),document.getElementById("root")),document.getElementById("msg-container").remove()},4654:function(){}},t={};function n(i){var r=t[i];if(void 0!==r)return r.exports;var s=t[i]={id:i,loaded:!1,exports:{}};return e[i].call(s.exports,s,s.exports,n),s.loaded=!0,s.exports}n.m=e,function(){var e=[];n.O=function(t,i,r,s){if(!i){var l=1/0;for(u=0;u<e.length;u++){i=e[u][0],r=e[u][1],s=e[u][2];for(var a=!0,o=0;o<i.length;o++)(!1&s||l>=s)&&Object.keys(n.O).every((function(e){return n.O[e](i[o])}))?i.splice(o--,1):(a=!1,s<l&&(l=s));if(a){e.splice(u--,1);var c=r();void 0!==c&&(t=c)}}return t}s=s||0;for(var u=e.length;u>0&&e[u-1][2]>s;u--)e[u]=e[u-1];e[u]=[i,r,s]}}(),n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,{a:t}),t},n.d=function(e,t){for(var i in t)n.o(t,i)&&!n.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},n.g=function(){if("object"===typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"===typeof window)return window}}(),n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.nmd=function(e){return e.paths=[],e.children||(e.children=[]),e},function(){var e={179:0};n.O.j=function(t){return 0===e[t]};var t=function(t,i){var r,s,l=i[0],a=i[1],o=i[2],c=0;if(l.some((function(t){return 0!==e[t]}))){for(r in a)n.o(a,r)&&(n.m[r]=a[r]);if(o)var u=o(n)}for(t&&t(i);c<l.length;c++)s=l[c],n.o(e,s)&&e[s]&&e[s][0](),e[s]=0;return n.O(u)},i=self.webpackChunkbenchexec_react_table=self.webpackChunkbenchexec_react_table||[];i.forEach(t.bind(null,0)),i.push=t.bind(null,i.push.bind(i))}();var i=n.O(void 0,[216],(function(){return n(7415)}));i=n.O(i)}();
\ No newline at end of file
diff --git a/benchexec/tablegenerator/react-table/src/components/Overview.js b/benchexec/tablegenerator/react-table/src/components/Overview.js
index 51112db22..0fd9a32a8 100644
--- a/benchexec/tablegenerator/react-table/src/components/Overview.js
+++ b/benchexec/tablegenerator/react-table/src/components/Overview.js
@@ -250,7 +250,7 @@ export default class Overview extends React.Component {
       clearImmediate(this.lastImmediate);
     }
     this.lastImmediate = setImmediate(() => {
-      this.filterUrlSetter(filter, { history: this.routerRef.current.history });
+      this.filterUrlSetter(filter, this.routerRef.current.history);
       this.lastFiltered = filter.filter(
         (item) => (item.values && item.values.length > 0) || item.value,
       );
diff --git a/benchexec/tablegenerator/react-table/src/components/QuantilePlot.js b/benchexec/tablegenerator/react-table/src/components/QuantilePlot.js
index ba723100c..855ba00b0 100644
--- a/benchexec/tablegenerator/react-table/src/components/QuantilePlot.js
+++ b/benchexec/tablegenerator/react-table/src/components/QuantilePlot.js
@@ -21,8 +21,8 @@ import {
 import {
   getRunSetName,
   EXTENDED_DISCRETE_COLOR_RANGE,
-  setParam,
-  getHashSearch,
+  setURLParameter,
+  getURLParameters,
   getFirstVisibles,
 } from "../utils/utils";
 import { renderSetting } from "../utils/plot";
@@ -61,7 +61,7 @@ export default class QuantilePlot extends React.Component {
   }
 
   setPlotData() {
-    const queryProps = getHashSearch();
+    const queryProps = getURLParameters();
 
     let { selection, plot, scaling, results } = {
       ...this.defaultValues,
@@ -110,7 +110,7 @@ export default class QuantilePlot extends React.Component {
      they differ, then the initial selection was a hidden column/runset and therefore another column/runset was selected
      to be shown. In this case, update the URL parameter to correctly define the selection that is actually being shown now. */
     if (initialSelection && selection && initialSelection !== selection) {
-      setParam({ selection });
+      setURLParameter({ selection });
     }
 
     return {
@@ -519,7 +519,9 @@ export default class QuantilePlot extends React.Component {
                   className="setting-select"
                   name="setting-Selection"
                   value={this.state.selection}
-                  onChange={(ev) => setParam({ selection: ev.target.value })}
+                  onChange={(ev) =>
+                    setURLParameter({ selection: ev.target.value })
+                  }
                 >
                   <optgroup label="Runsets">
                     {this.props.tools.map((tool, i) => {
@@ -544,7 +546,7 @@ export default class QuantilePlot extends React.Component {
               {renderSetting(
                 "Plot",
                 this.state.plot,
-                (ev) => setParam({ plot: ev.target.value }),
+                (ev) => setURLParameter({ plot: ev.target.value }),
                 this.plotOptions,
               )}
             </div>
@@ -552,13 +554,13 @@ export default class QuantilePlot extends React.Component {
               {renderSetting(
                 "Scaling",
                 this.state.scaling,
-                (ev) => setParam({ scaling: ev.target.value }),
+                (ev) => setURLParameter({ scaling: ev.target.value }),
                 this.scalingOptions,
               )}
               {renderSetting(
                 "Results",
                 this.state.results,
-                (ev) => setParam({ results: ev.target.value }),
+                (ev) => setURLParameter({ results: ev.target.value }),
                 this.resultsOptions,
                 resultsTooltip,
                 this.state.isResultSelectionDisabled,
diff --git a/benchexec/tablegenerator/react-table/src/components/ReactTable.js b/benchexec/tablegenerator/react-table/src/components/ReactTable.js
index 0212bb62b..6ac4b8041 100644
--- a/benchexec/tablegenerator/react-table/src/components/ReactTable.js
+++ b/benchexec/tablegenerator/react-table/src/components/ReactTable.js
@@ -31,8 +31,8 @@ import {
   emptyStateValue,
   isNil,
   hasSameEntries,
-  setHashSearch,
-  getHashSearch,
+  setURLParameter,
+  getURLParameters,
   getHiddenColIds,
   decodeFilter,
 } from "../utils/utils";
@@ -50,7 +50,7 @@ const pageSizes = [50, 100, 250, 500, 1000, 2500];
 const initialPageSize = 250;
 
 const getSortingSettingsFromURL = () => {
-  const urlParams = getHashSearch();
+  const urlParams = getURLParameters();
   let settings = urlParams.sort
     ? urlParams.sort.split(";").map((sortingEntry) => {
         const sortingParams = sortingEntry.split(",");
@@ -567,9 +567,9 @@ const Table = (props) => {
       defaultColumn,
       initialState: {
         sortBy: getSortingSettingsFromURL(),
-        pageIndex: parseInt(getHashSearch().page) - 1 || 0,
+        pageIndex: parseInt(getURLParameters().page) - 1 || 0,
         hiddenColumns: getHiddenColIds(columns),
-        pageSize: parseInt(getHashSearch().pageSize) || initialPageSize,
+        pageSize: parseInt(getURLParameters().pageSize) || initialPageSize,
       },
     },
     useFilters,
@@ -589,29 +589,20 @@ const Table = (props) => {
       )
       .join(";");
     const value = sort.length ? sort : undefined;
-    const prevParams = getHashSearch();
-    if (prevParams["sort"] !== value) {
-      setHashSearch({ sort: value }, { keepOthers: true });
-    }
+    setURLParameter({ sort: value });
   }, [sortBy]);
 
   // Update the URL page size param when the table page size setting changed
   useEffect(() => {
     const value = pageSize !== initialPageSize ? pageSize : undefined;
-    const prevParams = getHashSearch();
-    if (prevParams["pageSize"] !== value) {
-      setHashSearch({ pageSize: value }, { keepOthers: true });
-    }
+    setURLParameter({ pageSize: value });
   }, [pageSize]);
 
   // Update the URL page param when the table page changed
   useEffect(() => {
     const value =
       pageIndex && pageIndex !== 0 ? Number(pageIndex) + 1 : undefined;
-    const prevParams = getHashSearch();
-    if (prevParams["page"] !== value) {
-      setHashSearch({ page: value }, { keepOthers: true });
-    }
+    setURLParameter({ page: value });
   }, [pageIndex]);
 
   // Store the column resizing values so they can be applied again in case the table rerenders
@@ -675,9 +666,9 @@ const Table = (props) => {
   // Update table relevant parameters after URL change
   useEffect(() => {
     return history.listen((location) => {
-      setPageSize(getHashSearch().pageSize || initialPageSize);
+      setPageSize(getURLParameters().pageSize || initialPageSize);
       setSortBy(getSortingSettingsFromURL());
-      gotoPage(getHashSearch().page - 1 || 0);
+      gotoPage(getURLParameters().page - 1 || 0);
     });
   }, [history, gotoPage, setPageSize, setSortBy]);
 
diff --git a/benchexec/tablegenerator/react-table/src/components/ScatterPlot.js b/benchexec/tablegenerator/react-table/src/components/ScatterPlot.js
index 8ace6c927..6fb6a7f59 100644
--- a/benchexec/tablegenerator/react-table/src/components/ScatterPlot.js
+++ b/benchexec/tablegenerator/react-table/src/components/ScatterPlot.js
@@ -22,8 +22,8 @@ import {
 } from "react-vis";
 import {
   getRunSetName,
-  setParam,
-  getHashSearch,
+  setURLParameter,
+  getURLParameters,
   isNil,
   getFirstVisibles,
 } from "../utils/utils";
@@ -98,7 +98,7 @@ export default class ScatterPlot extends React.Component {
     let { results, scaling, toolX, toolY, columnX, columnY, line, regression } =
       {
         ...this.defaultValues,
-        ...getHashSearch(),
+        ...getURLParameters(),
       };
 
     let dataX, dataY, areAllColsHidden;
@@ -221,7 +221,7 @@ export default class ScatterPlot extends React.Component {
     const areSelectionsNumerical = this.checkForNumericalSelections();
     if (isRegressionEnabled) {
       if (this.lineCount === 0 || !areSelectionsNumerical) {
-        setParam({ regression: this.regressionOptions.none });
+        setURLParameter({ regression: this.regressionOptions.none });
       } else {
         const regressionDataArray = array.map((data) => [
           parseFloat(data.x),
@@ -333,13 +333,13 @@ export default class ScatterPlot extends React.Component {
             {renderSetting(
               "Scaling",
               this.state.scaling,
-              (ev) => setParam({ scaling: ev.target.value }),
+              (ev) => setURLParameter({ scaling: ev.target.value }),
               this.scalingOptions,
             )}
             {renderSetting(
               "Results",
               this.state.results,
-              (ev) => setParam({ results: ev.target.value }),
+              (ev) => setURLParameter({ results: ev.target.value }),
               this.resultsOptions,
               "In addition to which results are selected here, any filters will still be applied.",
             )}
@@ -347,7 +347,7 @@ export default class ScatterPlot extends React.Component {
               {renderOptgroupsSetting(
                 "Aux. Lines",
                 this.state.line,
-                (ev) => setParam({ line: ev.target.value }),
+                (ev) => setURLParameter({ line: ev.target.value }),
                 this.lineOptgroupOptions,
                 "Adds the two auxiliary lines f(x) = cx and f(x) = x/c to the plot, with c being the chosen factor in the dropdown.",
               )}
@@ -359,7 +359,7 @@ export default class ScatterPlot extends React.Component {
               this.state.regression,
               (ev) => {
                 if (this.checkForNumericalSelections()) {
-                  setParam({ regression: ev.target.value });
+                  setURLParameter({ regression: ev.target.value });
                 } else {
                   alert(
                     "Regressions are only available for numerical selections.",
@@ -494,12 +494,12 @@ export default class ScatterPlot extends React.Component {
     this.array = [];
     let [tool, column] = ev.target.value.split("-");
     column = column.replace("___", "-");
-    setParam({ [`tool${axis}`]: tool, [`column${axis}`]: column });
+    setURLParameter({ [`tool${axis}`]: tool, [`column${axis}`]: column });
   };
 
   swapAxes = () => {
     this.array = [];
-    setParam({
+    setURLParameter({
       toolX: this.state.toolY,
       toolY: this.state.toolX,
       columnX: this.state.columnY,
diff --git a/benchexec/tablegenerator/react-table/src/components/SelectColumn.js b/benchexec/tablegenerator/react-table/src/components/SelectColumn.js
index 618c55539..43865949a 100644
--- a/benchexec/tablegenerator/react-table/src/components/SelectColumn.js
+++ b/benchexec/tablegenerator/react-table/src/components/SelectColumn.js
@@ -9,7 +9,7 @@ import React from "react";
 import ReactModal from "react-modal";
 import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
 import { faClose } from "@fortawesome/free-solid-svg-icons";
-import { getRunSetName, setHashSearch } from "../utils/utils";
+import { getRunSetName, setURLParameter } from "../utils/utils";
 
 export default class SelectColumn extends React.Component {
   constructor(props) {
@@ -67,10 +67,7 @@ export default class SelectColumn extends React.Component {
       hiddenParams["hidden"] = null;
     }
 
-    setHashSearch(hiddenParams, {
-      keepOthers: true,
-      history: this.props.history,
-    });
+    setURLParameter(hiddenParams, this.props.history);
   }
 
   // -------------------------Rendering-------------------------
diff --git a/benchexec/tablegenerator/react-table/src/utils/utils.js b/benchexec/tablegenerator/react-table/src/utils/utils.js
index e4e771e0e..4ae0122a4 100644
--- a/benchexec/tablegenerator/react-table/src/utils/utils.js
+++ b/benchexec/tablegenerator/react-table/src/utils/utils.js
@@ -203,74 +203,84 @@ const EXTENDED_DISCRETE_COLOR_RANGE = [
 ];
 
 /**
+ * Parses the search parameters from the URL hash or a provided string.
  *
- * @param {String} [str]
+ * @param {string} - Optional string to parse. If not provided, parses the URL hash of the current document.
+ * @returns {Object} - An object containing the parsed search parameters.
  */
-const getHashSearch = (str) => {
+const getURLParameters = (str) => {
+  // Split the URL string into parts using "?" as a delimiter
   const urlParts = (str || decodeURI(document.location.href)).split("?");
+
+  // Extract the search part of the URL
   const search = urlParts.length > 1 ? urlParts.slice(1).join("?") : undefined;
+
+  // If there are no search parameters, return an empty object
   if (search === undefined || search.length === 0) {
     return {};
   }
-  const keyValuePairs = search.split("&").map((i) => i.split("="));
 
+  // Split the search string into key-value pairs and generate an object from them
+  const keyValuePairs = search.split("&").map((pair) => pair.split("="));
   const out = {};
   for (const [key, ...value] of keyValuePairs) {
     out[key] = value.join("=");
   }
+
   return out;
 };
 
 /**
+ * Constructs a query string from the provided parameters
  *
- * @param {Object} params Object containing the params to be encoded as query params
- * @param {Boolean} [returnString] if true, only returns the url without setting it
+ * @param {Object} params - The parameters to be included in the query string. Any undefined or null values will be omitted.
+ * @returns {string} - The constructed query string.
  */
-const setHashSearch = (
-  params = {},
-  options = {
-    returnString: false,
-    baseUrl: null,
-    keepOthers: false,
-    paramName: null,
-    history: null,
-  },
-) => {
-  let additionalParams = {};
-  let transformedParams = params;
-  if (options.keepOthers) {
-    additionalParams = getHashSearch();
-    const removedItems = Object.entries(params).filter(
-      ([_, value]) => value === undefined || value === null,
-    );
-    removedItems.forEach(([key]) => {
-      delete additionalParams[key];
-      delete transformedParams[key];
-    });
-  }
-  const mergedParams = { ...additionalParams, ...params };
-  const optionTemplate = { returnString: false, baseUrl: null };
-  const { returnString, baseUrl, history } = { ...optionTemplate, ...options };
-  const url = (baseUrl || document.location.href).split("?")[0];
-  const pairs = Object.keys(mergedParams).map(
-    (key) => `${key}=${mergedParams[key]}`,
-  );
-  const searchString = `?${pairs.join("&")}`;
-  const hrefString = encodeURI(`${url}${searchString}`);
-  if (returnString) {
-    return hrefString;
-  }
-  if (history) {
-    history.push(searchString);
-    return;
+export const constructQueryString = (params) => {
+  return Object.keys(params)
+    .filter((key) => params[key] !== undefined && params[key] !== null)
+    .map((key) => `${key}=${params[key]}`)
+    .join("&");
+};
+
+/**
+ * Constructs a URL hash from the provided parameters. It will merge the parameters with the existing ones in the URL hash after filtering out any undefined or null values.
+ *
+ * @param {string} url - The URL to be processed
+ * @param {Object} params - The parameters to be included in the hash
+ * @returns {string} - The constructed URL hash
+ */
+export const constructHashURL = (url, params = {}) => {
+  const exisitingParams = getURLParameters(url);
+  const mergedParams = { ...exisitingParams, ...params };
+
+  const queryString = constructQueryString(mergedParams);
+  const baseURL = url.split("?")[0];
+
+  return queryString.length > 0 ? `${baseURL}?${queryString}` : baseURL;
+};
+
+/**
+ * Sets or updates the search parameters in the URL hash of the current page. All the existing search parameters will not be disturbed. Also accepts a history object to update the URL hash without reloading the page.
+ * It can also be used to remove a parameter from the URL by setting it's value to undefined.
+ *
+ * @param {Object} params - The parameters to be set or updated in the URL hash
+ * @param {Object} [history=null] - The history object to use for updating the URL hash
+ * @returns {void}
+ */
+const setURLParameter = (params = {}, history = null) => {
+  const newUrl = constructHashURL(document.location.href, params);
+
+  if (history && history.push) {
+    history.push(newUrl);
   }
-  document.location.href = hrefString;
+  document.location.href = newUrl;
 };
 
 const makeUrlFilterDeserializer = (statusValues, categoryValues) => {
   const deserializer = makeFilterDeserializer({ categoryValues, statusValues });
   return (str) => {
-    const params = getHashSearch(str);
+    const params = getURLParameters(str);
     if (params.filter) {
       return deserializer(params.filter);
     }
@@ -285,6 +295,7 @@ const makeSerializedFilterValue = (filter) => {
   }
   return parts.join(",");
 };
+
 const createDistinctValueFilters = (selected, nominal, trim = false) => {
   const filter = {};
   // we want to minimize the needed space to encode the filter
@@ -661,19 +672,20 @@ const makeFilterDeserializer =
 
 const makeUrlFilterSerializer = (statusValues, categoryValues) => {
   const serializer = makeFilterSerializer({ statusValues, categoryValues });
-  return (filter, options) => {
-    const previousParams = getHashSearch();
+  return (filter, history) => {
     if (!filter) {
-      return setHashSearch(previousParams, options);
+      return setURLParameter({ filter: undefined }, history);
     }
+
     const encoded = serializer(filter);
     if (encoded) {
-      return setHashSearch({ ...previousParams, filter: encoded }, options);
+      return setURLParameter({ filter: encoded }, history);
     }
-    delete previousParams.filter;
-    return setHashSearch({ ...previousParams }, options);
+
+    return setURLParameter({ filter: undefined }, history);
   };
 };
+
 // Sets the URL parameters to the given string. Assumes that there is currently no hash or URL parameters defined.
 const setConstantHashSearch = (paramString) => {
   document.location.href = encodeURI(
@@ -681,15 +693,6 @@ const setConstantHashSearch = (paramString) => {
   );
 };
 
-/**
- * Adds or update given key-value pairs to the query params
- *
- * @param {Object} param The Key-Value pair to be added to the current query param list
- */
-const setParam = (param) => {
-  setHashSearch({ ...getHashSearch(), ...param });
-};
-
 const stringAsBoolean = (str) => str === "true";
 
 const deepEquals = (a, b) => {
@@ -973,7 +976,7 @@ class NumberFormatterBuilder {
  * Each property contains an array of integers which represent the indexes of the columns of the corresponding runset that will be hidden.
  */
 const createHiddenColsFromURL = (tools) => {
-  const urlParams = getHashSearch();
+  const urlParams = getURLParameters();
   // Object containing all hidden runsets from the URL (= param "hidden")
   let hiddenTools = [];
   if (urlParams.hidden) {
@@ -1140,10 +1143,9 @@ export {
   isOkStatus,
   isNil,
   EXTENDED_DISCRETE_COLOR_RANGE,
-  getHashSearch,
-  setHashSearch,
+  getURLParameters,
   setConstantHashSearch,
-  setParam,
+  setURLParameter,
   createHiddenColsFromURL,
   stringAsBoolean,
   without,


Test patch:
diff --git a/benchexec/tablegenerator/react-table/src/tests/QuantilePlot.test.js b/benchexec/tablegenerator/react-table/src/tests/QuantilePlot.test.js
index 9580fa306..f6bf5d709 100644
--- a/benchexec/tablegenerator/react-table/src/tests/QuantilePlot.test.js
+++ b/benchexec/tablegenerator/react-table/src/tests/QuantilePlot.test.js
@@ -9,7 +9,7 @@ import React from "react";
 import QuantilePlot from "../components/QuantilePlot.js";
 import Overview from "../components/Overview";
 import renderer from "react-test-renderer";
-import { setParam } from "../utils/utils";
+import { setURLParameter } from "../utils/utils";
 const fs = require("fs");
 
 const testDir = "../test_integration/expected/";
@@ -65,12 +65,12 @@ files
       );
 
       describe("Quantile Plot should match HTML snapshot", () => {
-        setParam({ plot: plotInstance.plotOptions.quantile });
+        setURLParameter({ plot: plotInstance.plotOptions.quantile });
 
         it.each(selectionResultInput)(
           "with selection of the type %s and %s results",
           (selection, results) => {
-            setParam({ selection: selection.value, results });
+            setURLParameter({ selection: selection.value, results });
             plotInstance.refreshUrlState();
             expect(plot).toMatchSnapshot();
           },
@@ -78,12 +78,12 @@ files
       });
 
       describe("Direct Plot should match HTML snapshot", () => {
-        setParam({ plot: plotInstance.plotOptions.direct });
+        setURLParameter({ plot: plotInstance.plotOptions.direct });
 
         it.each(selectionResultInput)(
           "with selection of the type %s and %s results",
           (selection, results) => {
-            setParam({ selection: selection.value, results });
+            setURLParameter({ selection: selection.value, results });
             plotInstance.refreshUrlState();
             expect(plot).toMatchSnapshot();
           },
@@ -93,7 +93,7 @@ files
       // Score based plot isn't available if the data doesn't support a scoring scheme
       if (plotInstance.plotOptions.scoreBased) {
         describe("Score-based Quantile Plot should match HTML snapshot (if it exists)", () => {
-          setParam({ plot: plotInstance.plotOptions.scoreBased });
+          setURLParameter({ plot: plotInstance.plotOptions.scoreBased });
 
           // Only test with columns as runsets can't be selected for score-based plots
           it.each(
@@ -101,7 +101,7 @@ files
               (selection) => selection.toString() !== "runset",
             ),
           )("with selection of the type %s", (selection) => {
-            setParam({ selection: selection.value });
+            setURLParameter({ selection: selection.value });
             plotInstance.refreshUrlState();
             expect(plot).toMatchSnapshot();
           });
diff --git a/benchexec/tablegenerator/react-table/src/tests/ScatterPlot.test.js b/benchexec/tablegenerator/react-table/src/tests/ScatterPlot.test.js
index 9e225bf94..0a342da12 100644
--- a/benchexec/tablegenerator/react-table/src/tests/ScatterPlot.test.js
+++ b/benchexec/tablegenerator/react-table/src/tests/ScatterPlot.test.js
@@ -9,7 +9,7 @@ import React from "react";
 import ScatterPlot from "../components/ScatterPlot.js";
 import Overview from "../components/Overview";
 import renderer from "react-test-renderer";
-import { setParam } from "../utils/utils";
+import { setURLParameter } from "../utils/utils";
 const fs = require("fs");
 
 const content = fs.readFileSync(
@@ -170,6 +170,6 @@ function getSelections(xSelection, ySelection) {
 }
 
 function setUrlParams(params) {
-  setParam(params);
+  setURLParameter(params);
   plotInstance.refreshUrlState();
 }
diff --git a/benchexec/tablegenerator/react-table/src/tests/utils.test.js b/benchexec/tablegenerator/react-table/src/tests/utils.test.js
index fdd4de3e4..e8269aa12 100644
--- a/benchexec/tablegenerator/react-table/src/tests/utils.test.js
+++ b/benchexec/tablegenerator/react-table/src/tests/utils.test.js
@@ -9,14 +9,15 @@ import {
   isOkStatus,
   numericSortMethod,
   textSortMethod,
-  getHashSearch,
-  setHashSearch,
+  getURLParameters,
   NumberFormatterBuilder,
+  constructQueryString,
+  decodeFilter,
   hasSameEntries,
+  constructHashURL,
   makeFilterSerializer,
   makeFilterDeserializer,
   splitUrlPathForMatchingPrefix,
-  decodeFilter,
   makeRegExp,
 } from "../utils/utils";
 
@@ -72,51 +73,128 @@ describe("numericSortMethod", () => {
 });
 
 describe("hashRouting helpers", () => {
-  describe("getHashSearch", () => {
+  describe("getURLParameters", () => {
     test("should get params as object", () => {
-      const res = getHashSearch("localhost#/bla?id=1&name=benchexec");
+      const res = getURLParameters("localhost#/bla?id=1&name=benchexec");
       expect(res).toEqual({ id: "1", name: "benchexec" });
     });
 
     test("should return empty object if no params are given", () => {
-      const res = getHashSearch("localhost#bla");
+      const res = getURLParameters("localhost#bla");
       expect(res).toEqual({});
     });
 
     test("should return empty object if only ? is given", () => {
-      const res = getHashSearch("localhost#bla?");
+      const res = getURLParameters("localhost#bla?");
       expect(res).toEqual({});
     });
 
     test("should handle missing value", () => {
-      const res = getHashSearch("localhost#bla?id=1&foo");
+      const res = getURLParameters("localhost#bla?id=1&foo");
       expect(res).toEqual({ id: "1", foo: "" });
     });
 
     test("should handle empty value", () => {
-      const res = getHashSearch("localhost#bla?foo=&id=1");
+      const res = getURLParameters("localhost#bla?foo=&id=1");
       expect(res).toEqual({ foo: "", id: "1" });
     });
 
     test("should handle values with =", () => {
-      const res = getHashSearch("localhost#bla?a=b=c");
+      const res = getURLParameters("localhost#bla?a=b=c");
       expect(res).toEqual({ a: "b=c" });
     });
 
     test("should handle values with ?", () => {
-      const res = getHashSearch("localhost#bla?a=b?c");
+      const res = getURLParameters("localhost#bla?a=b?c");
       expect(res).toEqual({ a: "b?c" });
     });
   });
 
-  describe("setHashSearch", () => {
-    test("should translate object to queryparams", () => {
-      const params = { id: "1", name: "benchexec" };
-      const res = setHashSearch(params, {
-        returnString: true,
-        baseUrl: "localhost#table",
-      });
-      expect(res).toEqual("localhost#table?id=1&name=benchexec");
+  describe("constructQueryString", () => {
+    test("should return empty string for empty input", () => {
+      const queryString = constructQueryString({});
+      expect(queryString).toBe("");
+    });
+
+    test("should construct query string properly", () => {
+      const params = { key1: "value1", key2: "value2" };
+      const queryString = constructQueryString(params);
+      expect(queryString).toBe("key1=value1&key2=value2");
+    });
+
+    test("should omit undefined and null values", () => {
+      const params = { key1: "value1", key2: undefined, key3: null };
+      const queryString = constructQueryString(params);
+      expect(queryString).toBe("key1=value1");
+    });
+  });
+
+  describe("constructHashURL", () => {
+    test("should construct URL hash with provided parameters", () => {
+      const baseUrl = "http://example.com";
+      const params = { key1: "value1", key2: "value2" };
+
+      expect(constructHashURL(baseUrl, params)).toEqual(
+        "http://example.com?key1=value1&key2=value2",
+      );
+    });
+
+    test("should construct URL hash with provided parameters and keep the exisiting parameters", () => {
+      const baseUrl = "http://example.com?existingKey=existingValue";
+      const params = { key1: "value1", key2: "value2" };
+
+      expect(constructHashURL(baseUrl, params)).toEqual(
+        "http://example.com?existingKey=existingValue&key1=value1&key2=value2",
+      );
+    });
+
+    test("should return the same URL with exisiting params if no parameters are provided", () => {
+      const baseUrl = "http://example.com?exisitingKey=existingValue";
+      const params = {};
+
+      expect(constructHashURL(baseUrl, params)).toEqual(
+        "http://example.com?exisitingKey=existingValue",
+      );
+    });
+
+    test("should override existing parameters with new ones", () => {
+      const baseUrl = "http://example.com?key1=value1&key2=value2";
+      const params = { key2: "newValue" };
+
+      expect(constructHashURL(baseUrl, params)).toEqual(
+        "http://example.com?key1=value1&key2=newValue",
+      );
+    });
+
+    test("should remove exisiting parameters if they are updated to undefined", () => {
+      const baseUrl = "http://example.com?key1=value1&key2=value2";
+      const params = { key2: undefined };
+
+      expect(constructHashURL(baseUrl, params)).toEqual(
+        "http://example.com?key1=value1",
+      );
+    });
+
+    test("should remove exisiting parameters if they are updated to null", () => {
+      const baseUrl = "http://example.com?key1=value1&key2=value2";
+      const params = { key2: null };
+
+      expect(constructHashURL(baseUrl, params)).toEqual(
+        "http://example.com?key1=value1",
+      );
+    });
+
+    test("should not remove exisiting parameters if they are updated to falsy values", () => {
+      const baseUrl = "http://example.com?key1=value1&key2=value2&key3=value3";
+      const params = {
+        key1: "",
+        key2: false,
+        key3: 0,
+      };
+
+      expect(constructHashURL(baseUrl, params)).toEqual(
+        "http://example.com?key1=&key2=false&key3=0",
+      );
     });
   });
 });