diff --git a/action/index.js b/action/index.js index fa49eac..a9fa3e1 100644 --- a/action/index.js +++ b/action/index.js @@ -1 +1 @@ -module.exports=function(e,r){"use strict";var t={};function __webpack_require__(r){if(t[r]){return t[r].exports}var n=t[r]={i:r,l:false,exports:{}};e[r].call(n.exports,n,n.exports,__webpack_require__);n.l=true;return n.exports}__webpack_require__.ab=__dirname+"/";function startup(){return __webpack_require__(501)}r(__webpack_require__);return startup()}({1:function(e,r,t){"use strict";var n=this&&this.__awaiter||function(e,r,t,n){function adopt(e){return e instanceof t?e:new t(function(r){r(e)})}return new(t||(t=Promise))(function(t,i){function fulfilled(e){try{step(n.next(e))}catch(e){i(e)}}function rejected(e){try{step(n["throw"](e))}catch(e){i(e)}}function step(e){e.done?t(e.value):adopt(e.value).then(fulfilled,rejected)}step((n=n.apply(e,r||[])).next())})};Object.defineProperty(r,"__esModule",{value:true});const i=t(129);const a=t(622);const o=t(669);const u=t(672);const f=o.promisify(i.exec);function cp(e,r,t={}){return n(this,void 0,void 0,function*(){const{force:n,recursive:i}=readCopyOptions(t);const o=(yield u.exists(r))?yield u.stat(r):null;if(o&&o.isFile()&&!n){return}const f=o&&o.isDirectory()?a.join(r,a.basename(e)):r;if(!(yield u.exists(e))){throw new Error(`no such file or directory: ${e}`)}const s=yield u.stat(e);if(s.isDirectory()){if(!i){throw new Error(`Failed to copy. ${e} is a directory, but tried to copy without recursive flag.`)}else{yield cpDirRecursive(e,f,0,n)}}else{if(a.relative(e,f)===""){throw new Error(`'${f}' and '${e}' are the same file`)}yield copyFile(e,f,n)}})}r.cp=cp;function mv(e,r,t={}){return n(this,void 0,void 0,function*(){if(yield u.exists(r)){let n=true;if(yield u.isDirectory(r)){r=a.join(r,a.basename(e));n=yield u.exists(r)}if(n){if(t.force==null||t.force){yield rmRF(r)}else{throw new Error("Destination already exists")}}}yield mkdirP(a.dirname(r));yield u.rename(e,r)})}r.mv=mv;function rmRF(e){return n(this,void 0,void 0,function*(){if(u.IS_WINDOWS){try{if(yield u.isDirectory(e,true)){yield f(`rd /s /q "${e}"`)}else{yield f(`del /f /a "${e}"`)}}catch(e){if(e.code!=="ENOENT")throw e}try{yield u.unlink(e)}catch(e){if(e.code!=="ENOENT")throw e}}else{let r=false;try{r=yield u.isDirectory(e)}catch(e){if(e.code!=="ENOENT")throw e;return}if(r){yield f(`rm -rf "${e}"`)}else{yield u.unlink(e)}}})}r.rmRF=rmRF;function mkdirP(e){return n(this,void 0,void 0,function*(){yield u.mkdirP(e)})}r.mkdirP=mkdirP;function which(e,r){return n(this,void 0,void 0,function*(){if(!e){throw new Error("parameter 'tool' is required")}if(r){const r=yield which(e,false);if(!r){if(u.IS_WINDOWS){throw new Error(`Unable to locate executable file: ${e}. Please verify either the file path exists or the file can be found within a directory specified by the PATH environment variable. Also verify the file has a valid extension for an executable file.`)}else{throw new Error(`Unable to locate executable file: ${e}. Please verify either the file path exists or the file can be found within a directory specified by the PATH environment variable. Also check the file mode to verify the file is executable.`)}}}try{const r=[];if(u.IS_WINDOWS&&process.env.PATHEXT){for(const e of process.env.PATHEXT.split(a.delimiter)){if(e){r.push(e)}}}if(u.isRooted(e)){const t=yield u.tryGetExecutablePath(e,r);if(t){return t}return""}if(e.includes("/")||u.IS_WINDOWS&&e.includes("\\")){return""}const t=[];if(process.env.PATH){for(const e of process.env.PATH.split(a.delimiter)){if(e){t.push(e)}}}for(const n of t){const t=yield u.tryGetExecutablePath(n+a.sep+e,r);if(t){return t}}return""}catch(e){throw new Error(`which failed with message ${e.message}`)}})}r.which=which;function readCopyOptions(e){const r=e.force==null?true:e.force;const t=Boolean(e.recursive);return{force:r,recursive:t}}function cpDirRecursive(e,r,t,i){return n(this,void 0,void 0,function*(){if(t>=255)return;t++;yield mkdirP(r);const n=yield u.readdir(e);for(const a of n){const n=`${e}/${a}`;const o=`${r}/${a}`;const f=yield u.lstat(n);if(f.isDirectory()){yield cpDirRecursive(n,o,t,i)}else{yield copyFile(n,o,i)}}yield u.chmod(r,(yield u.stat(e)).mode)})}function copyFile(e,r,t){return n(this,void 0,void 0,function*(){if((yield u.lstat(e)).isSymbolicLink()){try{yield u.lstat(r);yield u.unlink(r)}catch(e){if(e.code==="EPERM"){yield u.chmod(r,"0666");yield u.unlink(r)}}const t=yield u.readlink(e);yield u.symlink(t,r,u.IS_WINDOWS?"junction":null)}else if(!(yield u.exists(r))||t){yield u.copyFile(e,r)}})}},9:function(e,r,t){"use strict";var n=this&&this.__awaiter||function(e,r,t,n){function adopt(e){return e instanceof t?e:new t(function(r){r(e)})}return new(t||(t=Promise))(function(t,i){function fulfilled(e){try{step(n.next(e))}catch(e){i(e)}}function rejected(e){try{step(n["throw"](e))}catch(e){i(e)}}function step(e){e.done?t(e.value):adopt(e.value).then(fulfilled,rejected)}step((n=n.apply(e,r||[])).next())})};Object.defineProperty(r,"__esModule",{value:true});const i=t(87);const a=t(614);const o=t(129);const u=t(622);const f=t(1);const s=t(672);const c=process.platform==="win32";class ToolRunner extends a.EventEmitter{constructor(e,r,t){super();if(!e){throw new Error("Parameter 'toolPath' cannot be null or empty.")}this.toolPath=e;this.args=r||[];this.options=t||{}}_debug(e){if(this.options.listeners&&this.options.listeners.debug){this.options.listeners.debug(e)}}_getCommandString(e,r){const t=this._getSpawnFileName();const n=this._getSpawnArgs(e);let i=r?"":"[command]";if(c){if(this._isCmdFile()){i+=t;for(const e of n){i+=` ${e}`}}else if(e.windowsVerbatimArguments){i+=`"${t}"`;for(const e of n){i+=` ${e}`}}else{i+=this._windowsQuoteCmdArg(t);for(const e of n){i+=` ${this._windowsQuoteCmdArg(e)}`}}}else{i+=t;for(const e of n){i+=` ${e}`}}return i}_processLineBuffer(e,r,t){try{let n=r+e.toString();let a=n.indexOf(i.EOL);while(a>-1){const e=n.substring(0,a);t(e);n=n.substring(a+i.EOL.length);a=n.indexOf(i.EOL)}r=n}catch(e){this._debug(`error processing line. Failed with error ${e}`)}}_getSpawnFileName(){if(c){if(this._isCmdFile()){return process.env["COMSPEC"]||"cmd.exe"}}return this.toolPath}_getSpawnArgs(e){if(c){if(this._isCmdFile()){let r=`/D /S /C "${this._windowsQuoteCmdArg(this.toolPath)}`;for(const t of this.args){r+=" ";r+=e.windowsVerbatimArguments?t:this._windowsQuoteCmdArg(t)}r+='"';return[r]}}return this.args}_endsWith(e,r){return e.endsWith(r)}_isCmdFile(){const e=this.toolPath.toUpperCase();return this._endsWith(e,".CMD")||this._endsWith(e,".BAT")}_windowsQuoteCmdArg(e){if(!this._isCmdFile()){return this._uvQuoteCmdArg(e)}if(!e){return'""'}const r=[" ","\t","&","(",")","[","]","{","}","^","=",";","!","'","+",",","`","~","|","<",">",'"'];let t=false;for(const n of e){if(r.some(e=>e===n)){t=true;break}}if(!t){return e}let n='"';let i=true;for(let r=e.length;r>0;r--){n+=e[r-1];if(i&&e[r-1]==="\\"){n+="\\"}else if(e[r-1]==='"'){i=true;n+='"'}else{i=false}}n+='"';return n.split("").reverse().join("")}_uvQuoteCmdArg(e){if(!e){return'""'}if(!e.includes(" ")&&!e.includes("\t")&&!e.includes('"')){return e}if(!e.includes('"')&&!e.includes("\\")){return`"${e}"`}let r='"';let t=true;for(let n=e.length;n>0;n--){r+=e[n-1];if(t&&e[n-1]==="\\"){r+="\\"}else if(e[n-1]==='"'){t=true;r+="\\"}else{t=false}}r+='"';return r.split("").reverse().join("")}_cloneExecOptions(e){e=e||{};const r={cwd:e.cwd||process.cwd(),env:e.env||process.env,silent:e.silent||false,windowsVerbatimArguments:e.windowsVerbatimArguments||false,failOnStdErr:e.failOnStdErr||false,ignoreReturnCode:e.ignoreReturnCode||false,delay:e.delay||1e4};r.outStream=e.outStream||process.stdout;r.errStream=e.errStream||process.stderr;return r}_getSpawnOptions(e,r){e=e||{};const t={};t.cwd=e.cwd;t.env=e.env;t["windowsVerbatimArguments"]=e.windowsVerbatimArguments||this._isCmdFile();if(e.windowsVerbatimArguments){t.argv0=`"${r}"`}return t}exec(){return n(this,void 0,void 0,function*(){if(!s.isRooted(this.toolPath)&&(this.toolPath.includes("/")||c&&this.toolPath.includes("\\"))){this.toolPath=u.resolve(process.cwd(),this.options.cwd||process.cwd(),this.toolPath)}this.toolPath=yield f.which(this.toolPath,true);return new Promise((e,r)=>{this._debug(`exec tool: ${this.toolPath}`);this._debug("arguments:");for(const e of this.args){this._debug(` ${e}`)}const t=this._cloneExecOptions(this.options);if(!t.silent&&t.outStream){t.outStream.write(this._getCommandString(t)+i.EOL)}const n=new ExecState(t,this.toolPath);n.on("debug",e=>{this._debug(e)});const a=this._getSpawnFileName();const u=o.spawn(a,this._getSpawnArgs(t),this._getSpawnOptions(this.options,a));const f="";if(u.stdout){u.stdout.on("data",e=>{if(this.options.listeners&&this.options.listeners.stdout){this.options.listeners.stdout(e)}if(!t.silent&&t.outStream){t.outStream.write(e)}this._processLineBuffer(e,f,e=>{if(this.options.listeners&&this.options.listeners.stdline){this.options.listeners.stdline(e)}})})}const s="";if(u.stderr){u.stderr.on("data",e=>{n.processStderr=true;if(this.options.listeners&&this.options.listeners.stderr){this.options.listeners.stderr(e)}if(!t.silent&&t.errStream&&t.outStream){const r=t.failOnStdErr?t.errStream:t.outStream;r.write(e)}this._processLineBuffer(e,s,e=>{if(this.options.listeners&&this.options.listeners.errline){this.options.listeners.errline(e)}})})}u.on("error",e=>{n.processError=e.message;n.processExited=true;n.processClosed=true;n.CheckComplete()});u.on("exit",e=>{n.processExitCode=e;n.processExited=true;this._debug(`Exit code ${e} received from tool '${this.toolPath}'`);n.CheckComplete()});u.on("close",e=>{n.processExitCode=e;n.processExited=true;n.processClosed=true;this._debug(`STDIO streams have closed for tool '${this.toolPath}'`);n.CheckComplete()});n.on("done",(t,n)=>{if(f.length>0){this.emit("stdline",f)}if(s.length>0){this.emit("errline",s)}u.removeAllListeners();if(t){r(t)}else{e(n)}})})})}}r.ToolRunner=ToolRunner;function argStringToArray(e){const r=[];let t=false;let n=false;let i="";function append(e){if(n&&e!=='"'){i+="\\"}i+=e;n=false}for(let a=0;a0){r.push(i);i=""}continue}append(o)}if(i.length>0){r.push(i.trim())}return r}r.argStringToArray=argStringToArray;class ExecState extends a.EventEmitter{constructor(e,r){super();this.processClosed=false;this.processError="";this.processExitCode=0;this.processExited=false;this.processStderr=false;this.delay=1e4;this.done=false;this.timeout=null;if(!r){throw new Error("toolPath must not be empty")}this.options=e;this.toolPath=r;if(e.delay){this.delay=e.delay}}CheckComplete(){if(this.done){return}if(this.processClosed){this._setResult()}else if(this.processExited){this.timeout=setTimeout(ExecState.HandleTimeout,this.delay,this)}}_debug(e){this.emit("debug",e)}_setResult(){let e;if(this.processExited){if(this.processError){e=new Error(`There was an error when attempting to execute the process '${this.toolPath}'. This may indicate the process failed to start. Error: ${this.processError}`)}else if(this.processExitCode!==0&&!this.options.ignoreReturnCode){e=new Error(`The process '${this.toolPath}' failed with exit code ${this.processExitCode}`)}else if(this.processStderr&&this.options.failOnStdErr){e=new Error(`The process '${this.toolPath}' failed because one or more lines were written to the STDERR stream`)}}if(this.timeout){clearTimeout(this.timeout);this.timeout=null}this.done=true;this.emit("done",e,this.processExitCode)}static HandleTimeout(e){if(e.done){return}if(!e.processClosed&&e.processExited){const r=`The STDIO streams did not close within ${e.delay/1e3} seconds of the exit event from process '${e.toolPath}'. This may indicate a child process inherited the STDIO streams and has not yet exited.`;e._debug(r)}e._setResult()}}},87:function(e){e.exports=require("os")},129:function(e){e.exports=require("child_process")},357:function(e){e.exports=require("assert")},431:function(e,r,t){"use strict";Object.defineProperty(r,"__esModule",{value:true});const n=t(87);function issueCommand(e,r,t){const i=new Command(e,r,t);process.stdout.write(i.toString()+n.EOL)}r.issueCommand=issueCommand;function issue(e,r=""){issueCommand(e,{},r)}r.issue=issue;const i="::";class Command{constructor(e,r,t){if(!e){e="missing.command"}this.command=e;this.properties=r;this.message=t}toString(){let e=i+this.command;if(this.properties&&Object.keys(this.properties).length>0){e+=" ";for(const r in this.properties){if(this.properties.hasOwnProperty(r)){const t=this.properties[r];if(t){e+=`${r}=${escape(`${t||""}`)},`}}}}e+=i;const r=`${this.message||""}`;e+=escapeData(r);return e}}function escapeData(e){return e.replace(/\r/g,"%0D").replace(/\n/g,"%0A")}function escape(e){return e.replace(/\r/g,"%0D").replace(/\n/g,"%0A").replace(/]/g,"%5D").replace(/;/g,"%3B")}},470:function(e,r,t){"use strict";var n=this&&this.__awaiter||function(e,r,t,n){function adopt(e){return e instanceof t?e:new t(function(r){r(e)})}return new(t||(t=Promise))(function(t,i){function fulfilled(e){try{step(n.next(e))}catch(e){i(e)}}function rejected(e){try{step(n["throw"](e))}catch(e){i(e)}}function step(e){e.done?t(e.value):adopt(e.value).then(fulfilled,rejected)}step((n=n.apply(e,r||[])).next())})};Object.defineProperty(r,"__esModule",{value:true});const i=t(431);const a=t(87);const o=t(622);var u;(function(e){e[e["Success"]=0]="Success";e[e["Failure"]=1]="Failure"})(u=r.ExitCode||(r.ExitCode={}));function exportVariable(e,r){process.env[e]=r;i.issueCommand("set-env",{name:e},r)}r.exportVariable=exportVariable;function setSecret(e){i.issueCommand("add-mask",{},e)}r.setSecret=setSecret;function addPath(e){i.issueCommand("add-path",{},e);process.env["PATH"]=`${e}${o.delimiter}${process.env["PATH"]}`}r.addPath=addPath;function getInput(e,r){const t=process.env[`INPUT_${e.replace(/ /g,"_").toUpperCase()}`]||"";if(r&&r.required&&!t){throw new Error(`Input required and not supplied: ${e}`)}return t.trim()}r.getInput=getInput;function setOutput(e,r){i.issueCommand("set-output",{name:e},r)}r.setOutput=setOutput;function setFailed(e){process.exitCode=u.Failure;error(e)}r.setFailed=setFailed;function debug(e){i.issueCommand("debug",{},e)}r.debug=debug;function error(e){i.issue("error",e)}r.error=error;function warning(e){i.issue("warning",e)}r.warning=warning;function info(e){process.stdout.write(e+a.EOL)}r.info=info;function startGroup(e){i.issue("group",e)}r.startGroup=startGroup;function endGroup(){i.issue("endgroup")}r.endGroup=endGroup;function group(e,r){return n(this,void 0,void 0,function*(){startGroup(e);let t;try{t=yield r()}finally{endGroup()}return t})}r.group=group;function saveState(e,r){i.issueCommand("save-state",{name:e},r)}r.saveState=saveState;function getState(e){return process.env[`STATE_${e}`]||""}r.getState=getState},501:function(e,r,t){"use strict";t.r(r);var n=t(470);var i=t(622);var a=t.n(i);class action_Action{static get supportedPlatforms(){return["linux"]}static get isRunningLocally(){return process.env.RUNNER_WORKSPACE===undefined}static get isRunningFromSource(){return a().basename(__dirname)==="model"}static get name(){return"unity-test-runner"}static get rootFolder(){if(action_Action.isRunningFromSource){return a().dirname(a().dirname(a().dirname(__filename)))}return a().dirname(a().dirname(__filename))}static get actionFolder(){return`${action_Action.rootFolder}/action`}static get dockerfile(){return`${action_Action.actionFolder}/Dockerfile`}static get workspace(){return process.env.GITHUB_WORKSPACE}static checkCompatibility(){const e=process.platform;if(!action_Action.supportedPlatforms.includes(e)){throw new Error(`Currently ${e}-platform is not supported`)}}}var o=action_Action;var u=t(986);var f=typeof global=="object"&&global&&global.Object===Object&&global;var s=f;var c=typeof self=="object"&&self&&self.Object===Object&&self;var l=s||c||Function("return this")();var v=l;var d=v.Symbol;var p=d;var h=Object.prototype;var y=h.hasOwnProperty;var g=h.toString;var b=p?p.toStringTag:undefined;function getRawTag(e){var r=y.call(e,b),t=e[b];try{e[b]=undefined;var n=true}catch(e){}var i=g.call(e);if(n){if(r){e[b]=t}else{delete e[b]}}return i}var _=getRawTag;var m=Object.prototype;var w=m.toString;function objectToString(e){return w.call(e)}var x=objectToString;var O="[object Null]",S="[object Undefined]";var j=p?p.toStringTag:undefined;function baseGetTag(e){if(e==null){return e===undefined?S:O}return j&&j in Object(e)?_(e):x(e)}var E=baseGetTag;function isObjectLike(e){return e!=null&&typeof e=="object"}var I=isObjectLike;var A="[object Symbol]";function isSymbol(e){return typeof e=="symbol"||I(e)&&E(e)==A}var R=isSymbol;var k=0/0;function baseToNumber(e){if(typeof e=="number"){return e}if(R(e)){return k}return+e}var W=baseToNumber;function arrayMap(e,r){var t=-1,n=e==null?0:e.length,i=Array(n);while(++t0){if(++r>=ur){return arguments[0]}}else{r=0}return e.apply(undefined,arguments)}}var cr=shortOut;var lr=cr(ke);var vr=lr;var dr=/\{\n\/\* \[wrapped with (.+)\] \*/,pr=/,? & /;function getWrapDetails(e){var r=e.match(dr);return r?r[1].split(pr):[]}var hr=getWrapDetails;var yr=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/;function insertWrapDetails(e,r){var t=r.length;if(!t){return e}var n=t-1;r[n]=(t>1?"& ":"")+r[n];r=r.join(t>2?", ":" ");return e.replace(yr,"{\n/* [wrapped with "+r+"] */\n")}var gr=insertWrapDetails;function constant(e){return function(){return e}}var br=constant;var _r=function(){try{var e=Se(Object,"defineProperty");e({},"",{});return e}catch(e){}}();var mr=_r;var wr=!mr?te:function(e,r){return mr(e,"toString",{configurable:true,enumerable:false,value:br(r),writable:true})};var xr=wr;var Or=cr(xr);var Sr=Or;function arrayEach(e,r){var t=-1,n=e==null?0:e.length;while(++t-1}var kr=arrayIncludes;var Wr=1,Cr=2,Mr=8,Tr=16,Br=32,Pr=64,Dr=128,Lr=256,$r=512;var zr=[["ary",Dr],["bind",Wr],["bindKey",Cr],["curry",Mr],["curryRight",Tr],["flip",$r],["partial",Br],["partialRight",Pr],["rearg",Lr]];function updateWrapDetails(e,r){jr(zr,function(t){var n="_."+t[0];if(r&t[1]&&!kr(e,n)){e.push(n)}});return e.sort()}var Nr=updateWrapDetails;function setWrapToString(e,r,t){var n=r+"";return Sr(e,gr(n,Nr(hr(n),t)))}var Fr=setWrapToString;var Ur=1,qr=2,Gr=4,Kr=8,Hr=32,Zr=64;function createRecurry(e,r,t,n,i,a,o,u,f,s){var c=r&Kr,l=c?o:undefined,v=c?undefined:o,d=c?a:undefined,p=c?undefined:a;r|=c?Hr:Zr;r&=~(c?Zr:Hr);if(!(r&Gr)){r&=~(Ur|qr)}var h=[e,r,i,d,l,p,v,u,f,s];var y=t.apply(undefined,h);if(or(e)){vr(y,h)}y.placeholder=n;return Fr(y,e,r)}var Yr=createRecurry;function getHolder(e){var r=e;return r.placeholder}var Jr=getHolder;var Xr=9007199254740991;var Qr=/^(?:0|[1-9]\d*)$/;function isIndex(e,r){var t=typeof e;r=r==null?Xr:r;return!!r&&(t=="number"||t!="symbol"&&Qr.test(e))&&(e>-1&&e%1==0&&e1){b.reverse()}if(c&&f-1&&e%1==0&&e<=Ut}var qt=isLength;function isArrayLike(e){return e!=null&&qt(e.length)&&!ue(e)}var Gt=isArrayLike;function isIterateeCall(e,r,t){if(!F(t)){return false}var n=typeof r;if(n=="number"?Gt(t)&&Vr(r,t.length):n=="string"&&r in t){return Bt(t[r],e)}return false}var Kt=isIterateeCall;function createAssigner(e){return Ft(function(r,t){var n=-1,i=t.length,a=i>1?t[i-1]:undefined,o=i>2?t[2]:undefined;a=e.length>3&&typeof a=="function"?(i--,a):undefined;if(o&&Kt(t[0],t[1],o)){a=i<3?undefined:a;i=1}r=Object(r);while(++n-1}var Ui=listCacheHas;function listCacheSet(e,r){var t=this.__data__,n=Li(t,e);if(n<0){++this.size;t.push([e,r])}else{t[n][1]=r}return this}var qi=listCacheSet;function ListCache(e){var r=-1,t=e==null?0:e.length;this.clear();while(++r0&&t(u)){if(r>1){baseFlatten(u,r-1,t,n,i)}else{ga(i,u)}}else if(!n){i[i.length]=u}}return i}var ma=baseFlatten;function flatten(e){var r=e==null?0:e.length;return r?ma(e,1):[]}var wa=flatten;function flatRest(e){return Sr(Nt(e,undefined,wa),e+"")}var xa=flatRest;var Oa=xa(ya);var Sa=Oa;var ja=Qn(Object.getPrototypeOf,Object);var Ea=ja;var Ia="[object Object]";var Aa=Function.prototype,Ra=Object.prototype;var ka=Aa.toString;var Wa=Ra.hasOwnProperty;var Ca=ka.call(Object);function isPlainObject(e){if(!I(e)||E(e)!=Ia){return false}var r=Ea(e);if(r===null){return true}var t=Wa.call(r,"constructor")&&r.constructor;return typeof t=="function"&&t instanceof t&&ka.call(t)==Ca}var Ma=isPlainObject;var Ta="[object DOMException]",Ba="[object Error]";function isError(e){if(!I(e)){return false}var r=E(e);return r==Ba||r==Ta||typeof e.message=="string"&&typeof e.name=="string"&&!Ma(e)}var Pa=isError;var Da=Ft(function(e,r){try{return De(e,undefined,r)}catch(e){return Pa(e)?e:new Error(e)}});var La=Da;var $a="Expected a function";function before(e,r){var t;if(typeof r!="function"){throw new TypeError($a)}e=V(e);return function(){if(--e>0){t=r.apply(this,arguments)}if(e<=1){r=undefined}return t}}var za=before;var Na=1,Fa=32;var Ua=Ft(function(e,r,t){var n=Na;if(t.length){var i=nt(t,Jr(Ua));n|=Fa}return Wt(e,n,r,t,i)});Ua.placeholder={};var qa=Ua;var Ga=xa(function(e,r){jr(r,function(r){r=da(r);Tt(e,r,qa(e[r],e))});return e});var Ka=Ga;var Ha=1,Za=2,Ya=32;var Ja=Ft(function(e,r,t){var n=Ha|Za;if(t.length){var i=nt(t,Jr(Ja));n|=Ya}return Wt(r,n,e,t,i)});Ja.placeholder={};var Xa=Ja;function baseSlice(e,r,t){var n=-1,i=e.length;if(r<0){r=-r>i?0:i+r}t=t>i?i:t;if(t<0){t+=i}i=r>t?0:t-r>>>0;r>>>=0;var a=Array(i);while(++n=n?e:Qa(e,r,t)}var Va=castSlice;var eo="\\ud800-\\udfff",ro="\\u0300-\\u036f",to="\\ufe20-\\ufe2f",no="\\u20d0-\\u20ff",io=ro+to+no,ao="\\ufe0e\\ufe0f";var oo="\\u200d";var uo=RegExp("["+oo+eo+io+ao+"]");function hasUnicode(e){return uo.test(e)}var fo=hasUnicode;function asciiToArray(e){return e.split("")}var so=asciiToArray;var co="\\ud800-\\udfff",lo="\\u0300-\\u036f",vo="\\ufe20-\\ufe2f",po="\\u20d0-\\u20ff",ho=lo+vo+po,yo="\\ufe0e\\ufe0f";var go="["+co+"]",bo="["+ho+"]",_o="\\ud83c[\\udffb-\\udfff]",mo="(?:"+bo+"|"+_o+")",wo="[^"+co+"]",xo="(?:\\ud83c[\\udde6-\\uddff]){2}",Oo="[\\ud800-\\udbff][\\udc00-\\udfff]",So="\\u200d";var jo=mo+"?",Eo="["+yo+"]?",Io="(?:"+So+"(?:"+[wo,xo,Oo].join("|")+")"+Eo+jo+")*",Ao=Eo+jo+Io,Ro="(?:"+[wo+bo+"?",bo,xo,Oo,go].join("|")+")";var ko=RegExp(_o+"(?="+_o+")|"+Ro+Ao,"g");function unicodeToArray(e){return e.match(ko)||[]}var Wo=unicodeToArray;function stringToArray(e){return fo(e)?Wo(e):so(e)}var Co=stringToArray;function createCaseFirst(e){return function(r){r=ca(r);var t=fo(r)?Co(r):undefined;var n=t?t[0]:r.charAt(0);var i=t?Va(t,1).join(""):r.slice(1);return n[e]()+i}}var Mo=createCaseFirst;var To=Mo("toUpperCase");var Bo=To;function capitalize(e){return Bo(ca(e).toLowerCase())}var Po=capitalize;function arrayReduce(e,r,t,n){var i=-1,a=e==null?0:e.length;if(n&&a){t=e[++i]}while(++i=r?e:r}}return e}var nf=baseClamp;function clamp(e,r,t){if(t===undefined){t=r;r=undefined}if(t!==undefined){t=Y(t);t=t===t?t:0}if(r!==undefined){r=Y(r);r=r===r?r:0}return nf(Y(e),r,t)}var af=clamp;function stackClear(){this.__data__=new Gi;this.size=0}var of=stackClear;function stackDelete(e){var r=this.__data__,t=r["delete"](e);this.size=r.size;return t}var uf=stackDelete;function stackGet(e){return this.__data__.get(e)}var ff=stackGet;function stackHas(e){return this.__data__.has(e)}var sf=stackHas;var cf=200;function stackSet(e,r){var t=this.__data__;if(t instanceof Gi){var n=t.__data__;if(!Hi||n.lengthu)){return false}var s=a.get(e);if(s&&a.get(r)){return s==r}var c=-1,l=true,v=t&Fc?new Lc:undefined;a.set(e,r);a.set(r,e);while(++c=r||t<0||l&&n>=a}function timerExpired(){var e=cv();if(shouldInvoke(e)){return trailingEdge(e)}u=setTimeout(timerExpired,remainingWait(e))}function trailingEdge(e){u=undefined;if(v&&n){return invokeFunc(e)}n=i=undefined;return o}function cancel(){if(u!==undefined){clearTimeout(u)}s=0;n=f=i=u=undefined}function flush(){return u===undefined?o:trailingEdge(cv())}function debounced(){var e=cv(),t=shouldInvoke(e);n=arguments;i=this;f=e;if(t){if(u===undefined){return leadingEdge(f)}if(l){clearTimeout(u);u=setTimeout(timerExpired,r);return invokeFunc(f)}}if(u===undefined){u=setTimeout(timerExpired,r)}return o}debounced.cancel=cancel;debounced.flush=flush;return debounced}var pv=debounce;function defaultTo(e,r){return e==null||e!==e?r:e}var hv=defaultTo;var yv=Object.prototype;var gv=yv.hasOwnProperty;var bv=Ft(function(e,r){e=Object(e);var t=-1;var n=r.length;var i=n>2?r[2]:undefined;if(i&&Kt(r[0],r[1],i)){n=1}while(++t=Lv){a=zc;o=false;r=new Lc(r)}e:while(++i=0&&e.slice(t,i)==r}var sd=endsWith;function baseToPairs(e,r){return C(r,function(r){return[r,e[r]]})}var cd=baseToPairs;function setToPairs(e){var r=-1,t=Array(e.size);e.forEach(function(e){t[++r]=[e,e]});return t}var ld=setToPairs;var vd="[object Map]",dd="[object Set]";function createToPairs(e){return function(r){var t=es(r);if(t==vd){return qc(r)}if(t==dd){return ld(r)}return cd(r,e(r))}}var pd=createToPairs;var hd=pd(ii);var yd=hd;var gd=pd(di);var bd=gd;var _d={"&":"&","<":"<",">":">",'"':""","'":"'"};var md=Lo(_d);var wd=md;var xd=/[&<>"']/g,Od=RegExp(xd.source);function escape_escape(e){e=ca(e);return e&&Od.test(e)?e.replace(xd,wd):e}var Sd=escape_escape;var jd=/[\\^$.*+?()[\]{}|]/g,Ed=RegExp(jd.source);function escapeRegExp(e){e=ca(e);return e&&Ed.test(e)?e.replace(jd,"\\$&"):e}var Id=escapeRegExp;function arrayEvery(e,r){var t=-1,n=e==null?0:e.length;while(++ti?0:i+t}n=n===undefined||n>i?i:V(n);if(n<0){n+=i}n=t>n?0:Cd(n);while(t-1?i[a?r[o]:o]:undefined}}var Dd=createFind;var Ld=Math.max;function findIndex(e,r,t){var n=e==null?0:e.length;if(!n){return-1}var i=t==null?0:V(t);if(i<0){i=Ld(n+i,0)}return Er(e,Pl(r,3),i)}var $d=findIndex;var zd=Dd($d);var Nd=zd;function baseFindKey(e,r,t){var n;t(e,function(e,t,i){if(r(e,t,i)){n=t;return false}});return n}var Fd=baseFindKey;function findKey(e,r){return Fd(e,Pl(r,3),Zl)}var Ud=findKey;var qd=Math.max,Gd=Math.min;function findLastIndex(e,r,t){var n=e==null?0:e.length;if(!n){return-1}var i=n-1;if(t!==undefined){i=V(t);i=t<0?qd(n+i,0):Gd(i,n-1)}return Er(e,Pl(r,3),i,true)}var Kd=findLastIndex;var Hd=Dd(Kd);var Zd=Hd;function findLastKey(e,r){return Fd(e,Pl(r,3),ad)}var Yd=findLastKey;function head(e){return e&&e.length?e[0]:undefined}var Jd=head;function baseMap(e,r){var t=-1,n=Gt(e)?Array(e.length):[];Xl(e,function(e,i,a){n[++t]=r(e,i,a)});return n}var Xd=baseMap;function map_map(e,r){var t=T(e)?C:Xd;return t(e,Pl(r,3))}var Qd=map_map;function flatMap(e,r){return ma(Qd(e,r),1)}var Vd=flatMap;var ep=1/0;function flatMapDeep(e,r){return ma(Qd(e,r),ep)}var rp=flatMapDeep;function flatMapDepth(e,r,t){t=t===undefined?1:V(t);return ma(Qd(e,r),t)}var tp=flatMapDepth;var np=1/0;function flattenDeep(e){var r=e==null?0:e.length;return r?ma(e,np):[]}var ip=flattenDeep;function flattenDepth(e,r){var t=e==null?0:e.length;if(!t){return[]}r=r===undefined?1:V(r);return ma(e,r)}var ap=flattenDepth;var op=512;function flip(e){return Wt(e,op)}var up=flip;var fp=Ju("floor");var sp=fp;var cp="Expected a function";var lp=8,vp=32,dp=128,pp=256;function createFlow(e){return xa(function(r){var t=r.length,n=t,i=er.prototype.thru;if(e){r.reverse()}while(n--){var a=r[n];if(typeof a!="function"){throw new TypeError(cp)}if(i&&!o&&Ve(a)=="wrapper"){var o=new er([],true)}}n=o?n:t;while(++nr}var Cp=baseGt;function createRelationalOperation(e){return function(r,t){if(!(typeof r=="string"&&typeof t=="string")){r=Y(r);t=Y(t)}return e(r,t)}}var Mp=createRelationalOperation;var Tp=Mp(Cp);var Bp=Tp;var Pp=Mp(function(e,r){return e>=r});var Dp=Pp;var Lp=Object.prototype;var $p=Lp.hasOwnProperty;function baseHas(e,r){return e!=null&&$p.call(e,r)}var zp=baseHas;function has(e,r){return e!=null&&Al(e,r,zp)}var Np=has;var Fp=Math.max,Up=Math.min;function baseInRange(e,r,t){return e>=Up(r,t)&&e-1:!!i&&Rr(e,r,t)>-1}var Xp=includes_includes;var Qp=Math.max;function indexOf_indexOf(e,r,t){var n=e==null?0:e.length;if(!n){return-1}var i=t==null?0:V(t);if(i<0){i=Qp(n+i,0)}return Rr(e,r,i)}var Vp=indexOf_indexOf;function initial(e){var r=e==null?0:e.length;return r?Qa(e,0,-1):[]}var eh=initial;var rh=Math.min;function baseIntersection(e,r,t){var n=t?Dv:kr,i=e[0].length,a=e.length,o=a,u=Array(a),f=Infinity,s=[];while(o--){var c=e[o];if(o&&r){c=C(c,$n(r))}f=rh(c.length,f);u[o]=!t&&(r||i>=120&&c.length>=120)?new Lc(o&&c):undefined}c=e[0];var l=-1,v=u[0];e:while(++l=-vy&&e<=vy}var dy=isSafeInteger;function isUndefined(e){return e===undefined}var py=isUndefined;var hy="[object WeakMap]";function isWeakMap(e){return I(e)&&es(e)==hy}var yy=isWeakMap;var gy="[object WeakSet]";function isWeakSet(e){return I(e)&&E(e)==gy}var by=isWeakSet;var _y=1;function iteratee_iteratee(e){return Pl(typeof e=="function"?e:wc(e,_y))}var my=iteratee_iteratee;var wy=Array.prototype;var xy=wy.join;function join(e,r){return e==null?"":xy.call(e,r)}var Oy=join;var Sy=qu(function(e,r,t){return e+(t?"-":"")+r.toLowerCase()});var jy=Sy;var Ey=Vl(function(e,r,t){Tt(e,t,r)});var Iy=Ey;function strictLastIndexOf(e,r,t){var n=t+1;while(n--){if(e[n]===r){return n}}return n}var Ay=strictLastIndexOf;var Ry=Math.max,ky=Math.min;function lastIndexOf(e,r,t){var n=e==null?0:e.length;if(!n){return-1}var i=n;if(t!==undefined){i=V(t);i=i<0?Ry(n+i,0):ky(i,n-1)}return r===r?Ay(e,r,i):Er(e,Ir,i,true)}var Wy=lastIndexOf;var Cy=qu(function(e,r,t){return e+(t?" ":"")+r.toLowerCase()});var My=Cy;var Ty=Mo("toLowerCase");var By=Ty;function baseLt(e,r){return e=this.__values__.length,r=e?undefined:this.__values__[this.__index__++];return{done:e,value:r}}var _g=wrapperNext;function baseNth(e,r){var t=e.length;if(!t){return}r+=r<0?t:0;return Vr(r,t)?e[r]:undefined}var mg=baseNth;function nth(e,r){return e&&e.length?mg(e,V(r)):undefined}var wg=nth;function nthArg(e){e=V(e);return Ft(function(r){return mg(r,e)})}var xg=nthArg;function baseUnset(e,r){r=la(r,e);e=wh(e,r);return e==null||delete e[da(Fv(r))]}var Og=baseUnset;function customOmitClone(e){return Ma(e)?undefined:e}var Sg=customOmitClone;var jg=1,Eg=2,Ig=4;var Ag=xa(function(e,r){var t={};if(e==null){return t}var n=false;r=C(r,function(r){r=la(r,e);n||(n=r.length>1);return r});$t(e,Bf(e),t);if(n){t=wc(t,jg|Eg|Ig,Sg)}var i=r.length;while(i--){Og(t,r[i])}return t});var Rg=Ag;function baseSet(e,r,t,n){if(!F(e)){return e}r=la(r,e);var i=-1,a=r.length,o=a-1,u=e;while(u!=null&&++ir||a&&o&&f&&!u&&!s||n&&o&&f||!t&&f||!i){return 1}if(!n&&!a&&!s&&e=u){return f}var s=t[n];return f*(s=="desc"?-1:1)}}return e.index-r.index}var Dg=compareMultiple;function baseOrderBy(e,r,t){var n=-1;r=C(r.length?r:[te],$n(Pl));var i=Xd(e,function(e,t,i){var a=C(r,function(r){return r(e)});return{criteria:a,index:++n,value:e}});return Bg(i,function(e,r){return Dg(e,r,t)})}var Lg=baseOrderBy;function orderBy(e,r,t,n){if(e==null){return[]}if(!T(r)){r=r==null?[]:[r]}t=n?undefined:t;if(!T(t)){t=t==null?[]:[t]}return Lg(e,r,t)}var $g=orderBy;function createOver(e){return xa(function(r){r=C(r,$n(Pl));return Ft(function(t){var n=this;return e(r,function(e){return De(e,n,t)})})})}var zg=createOver;var Ng=zg(C);var Fg=Ng;var Ug=Ft;var qg=Ug;var Gg=Math.min;var Kg=qg(function(e,r){r=r.length==1&&T(r[0])?C(r[0],$n(Pl)):C(ma(r,1),$n(Pl));var t=r.length;return Ft(function(n){var i=-1,a=Gg(n.length,t);while(++iQg){return t}do{if(r%2){t+=e}r=Vg(r/2);if(r){e+=e}}while(r);return t}var eb=baseRepeat;var rb=Ml("length");var tb=rb;var nb="\\ud800-\\udfff",ib="\\u0300-\\u036f",ab="\\ufe20-\\ufe2f",ob="\\u20d0-\\u20ff",ub=ib+ab+ob,fb="\\ufe0e\\ufe0f";var sb="["+nb+"]",cb="["+ub+"]",lb="\\ud83c[\\udffb-\\udfff]",vb="(?:"+cb+"|"+lb+")",db="[^"+nb+"]",pb="(?:\\ud83c[\\udde6-\\uddff]){2}",hb="[\\ud800-\\udbff][\\udc00-\\udfff]",yb="\\u200d";var gb=vb+"?",bb="["+fb+"]?",_b="(?:"+yb+"(?:"+[db,pb,hb].join("|")+")"+bb+gb+")*",mb=bb+gb+_b,wb="(?:"+[db+cb+"?",cb,pb,hb,sb].join("|")+")";var xb=RegExp(lb+"(?="+lb+")|"+wb+mb,"g");function unicodeSize(e){var r=xb.lastIndex=0;while(xb.test(e)){++r}return r}var Ob=unicodeSize;function stringSize(e){return fo(e)?Ob(e):tb(e)}var Sb=stringSize;var jb=Math.ceil;function createPadding(e,r){r=r===undefined?" ":L(r);var t=r.length;if(t<2){return t?eb(r,e):r}var n=eb(r,jb(e/Sb(r)));return fo(r)?Va(Co(n),0,e).join(""):n.slice(0,e)}var Eb=createPadding;var Ib=Math.ceil,Ab=Math.floor;function pad(e,r,t){e=ca(e);r=V(r);var n=r?Sb(e):0;if(!r||n>=r){return e}var i=(r-n)/2;return Eb(Ab(i),t)+e+Eb(Ib(i),t)}var Rb=pad;function padEnd(e,r,t){e=ca(e);r=V(r);var n=r?Sb(e):0;return r&&n-1){if(u!==e){Jb.call(u,f,1)}Jb.call(e,f,1)}}return e}var Xb=basePullAll;function pullAll(e,r){return e&&e.length&&r&&r.length?Xb(e,r):e}var Qb=pullAll;var Vb=Ft(Qb);var e_=Vb;function pullAllBy(e,r,t){return e&&e.length&&r&&r.length?Xb(e,r,Pl(t,2)):e}var r_=pullAllBy;function pullAllWith(e,r,t){return e&&e.length&&r&&r.length?Xb(e,r,undefined,t):e}var t_=pullAllWith;var n_=Array.prototype;var i_=n_.splice;function basePullAt(e,r){var t=e?r.length:0,n=t-1;while(t--){var i=r[t];if(t==n||i!==a){var a=i;if(Vr(i)){i_.call(e,i,1)}else{Og(e,i)}}}return e}var a_=basePullAt;var o_=xa(function(e,r){var t=e==null?0:e.length,n=ya(e,r);a_(e,C(r,function(e){return Vr(e,t)?+e:e}).sort(Pg));return n});var u_=o_;var f_=Math.floor,s_=Math.random;function baseRandom(e,r){return e+f_(s_()*(r-e+1))}var c_=baseRandom;var l_=parseFloat;var v_=Math.min,d_=Math.random;function random(e,r,t){if(t&&typeof t!="boolean"&&Kt(e,r,t)){r=t=undefined}if(t===undefined){if(typeof r=="boolean"){t=r;r=undefined}else if(typeof e=="boolean"){t=e;e=undefined}}if(e===undefined&&r===undefined){e=0;r=1}else{e=Q(e);if(r===undefined){r=e;e=0}else{r=Q(r)}}if(e>r){var n=e;e=r;r=n}if(t||e%1||r%1){var i=d_();return v_(e+i*(r-e+l_("1e-"+((i+"").length-1))),r)}return c_(e,r)}var p_=random;var h_=Math.ceil,y_=Math.max;function baseRange(e,r,t,n){var i=-1,a=y_(h_((r-e)/(t||1)),0),o=Array(a);while(a--){o[n?a:++i]=e;e+=t}return o}var g_=baseRange;function createRange(e){return function(r,t,n){if(n&&typeof n!="number"&&Kt(r,t,n)){t=n=undefined}r=Q(r);if(t===undefined){t=r;r=0}else{t=Q(t)}n=n===undefined?r1&&Kt(e,r[0],r[1])){r=[]}else if(t>2&&Kt(r[0],r[1],r[2])){r=[r[0]]}return Lg(e,ma(r,1),[])});var sm=fm;var cm=4294967295,lm=cm-1;var vm=Math.floor,dm=Math.min;function baseSortedIndexBy(e,r,t,n){r=t(r);var i=0,a=e==null?0:e.length,o=r!==r,u=r===null,f=R(r),s=r===undefined;while(i>>1;function baseSortedIndex(e,r,t){var n=0,i=e==null?n:e.length;if(typeof r=="number"&&r===r&&i<=ym){while(n>>1,o=e[a];if(o!==null&&!R(o)&&(t?o<=r:o>>0;if(!t){return[]}e=ca(e);if(e&&(typeof r=="string"||r!=null&&!ly(r))){r=L(r);if(!r&&fo(e)){return Va(Co(e),0,t)}}return e.split(r,t)}var Am=split;var Rm="Expected a function";var km=Math.max;function spread(e,r){if(typeof e!="function"){throw new TypeError(Rm)}r=r==null?0:km(V(r),0);return Ft(function(t){var n=t[r],i=Va(t,0,r);if(n){ga(i,n)}return De(e,this,i)})}var Wm=spread;var Cm=qu(function(e,r,t){return e+(t?" ":"")+Bo(r)});var Mm=Cm;function startsWith(e,r,t){e=ca(e);t=t==null?0:nf(V(t),0,e.length);r=L(r);return e.slice(t,t+r.length)==r}var Tm=startsWith;function stubObject(){return{}}var Bm=stubObject;function stubString(){return""}var Pm=stubString;function stubTrue(){return true}var Dm=stubTrue;var Lm=$(function(e,r){return e-r},0);var $m=Lm;function sum(e){return e&&e.length?Jy(e,te):0}var zm=sum;function sumBy(e,r){return e&&e.length?Jy(e,Pl(r,2)):0}var Nm=sumBy;function tail(e){var r=e==null?0:e.length;return r?Qa(e,1,r):[]}var Fm=tail;function take(e,r,t){if(!(e&&e.length)){return[]}r=t||r===undefined?1:V(r);return Qa(e,0,r<0?0:r)}var Um=take;function takeRight(e,r,t){var n=e==null?0:e.length;if(!n){return[]}r=t||r===undefined?1:V(r);r=n-r;return Qa(e,r<0?0:r,n)}var qm=takeRight;function takeRightWhile(e,r){return e&&e.length?Xv(e,Pl(r,3),false,true):[]}var Gm=takeRightWhile;function takeWhile(e,r){return e&&e.length?Xv(e,Pl(r,3)):[]}var Km=takeWhile;function tap(e,r){r(e);return e}var Hm=tap;var Zm=Object.prototype;var Ym=Zm.hasOwnProperty;function customDefaultsAssignIn(e,r,t,n){if(e===undefined||Bt(e,Zm[t])&&!Ym.call(n,t)){return r}return e}var Jm=customDefaultsAssignIn;var Xm={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"};function escapeStringChar(e){return"\\"+Xm[e]}var Qm=escapeStringChar;var Vm=/<%=([\s\S]+?)%>/g;var ew=Vm;var rw=/<%-([\s\S]+?)%>/g;var tw=rw;var nw=/<%([\s\S]+?)%>/g;var iw=nw;var aw={escape:tw,evaluate:iw,interpolate:ew,variable:"",imports:{_:{escape:Sd}}};var ow=aw;var uw=/\b__p \+= '';/g,fw=/\b(__p \+=) '' \+/g,sw=/(__e\(.*?\)|\b__t\)) \+\n'';/g;var cw=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g;var lw=/($^)/;var vw=/['\n\r\u2028\u2029\\]/g;var dw=Object.prototype;var pw=dw.hasOwnProperty;function template(e,r,t){var n=ow.imports._.templateSettings||ow;if(t&&Kt(e,r,t)){r=undefined}e=ca(e);r=gi({},r,n,Jm);var i=gi({},r.imports,n.imports,Jm),a=ii(i),o=Zp(i,a);var u,f,s=0,c=r.interpolate||lw,l="__p += '";var v=RegExp((r.escape||lw).source+"|"+c.source+"|"+(c===ew?cw:lw).source+"|"+(r.evaluate||lw).source+"|$","g");var d=pw.call(r,"sourceURL")?"//# sourceURL="+(r.sourceURL+"").replace(/[\r\n]/g," ")+"\n":"";e.replace(v,function(r,t,n,i,a,o){n||(n=i);l+=e.slice(s,o).replace(vw,Qm);if(t){u=true;l+="' +\n__e("+t+") +\n'"}if(a){f=true;l+="';\n"+a+";\n__p += '"}if(n){l+="' +\n((__t = ("+n+")) == null ? '' : __t) +\n'"}s=o+r.length;return r});l+="';\n";var p=pw.call(r,"variable")&&r.variable;if(!p){l="with (obj) {\n"+l+"\n}\n"}l=(f?l.replace(uw,""):l).replace(fw,"$1").replace(sw,"$1;");l="function("+(p||"obj")+") {\n"+(p?"":"obj || (obj = {});\n")+"var __t, __p = ''"+(u?", __e = _.escape":"")+(f?", __j = Array.prototype.join;\n"+"function print() { __p += __j.call(arguments, '') }\n":";\n")+l+"return __p\n}";var h=La(function(){return Function(a,d+"return "+l).apply(undefined,o)});h.source=l;if(Pa(h)){throw h}return h}var hw=template;var yw="Expected a function";function throttle(e,r,t){var n=true,i=true;if(typeof e!="function"){throw new TypeError(yw)}if(F(t)){n="leading"in t?!!t.leading:n;i="trailing"in t?!!t.trailing:i}return pv(e,r,{leading:n,maxWait:r,trailing:i})}var gw=throttle;function thru(e,r){return r(e)}var bw=thru;var _w=9007199254740991;var mw=4294967295;var ww=Math.min;function times(e,r){e=V(e);if(e<1||e>_w){return[]}var t=mw,n=ww(e,mw);r=ed(r);e-=mw;var i=Jt(n,r);while(++t-1){}return t}var Cw=charsEndIndex;function charsStartIndex(e,r){var t=-1,n=e.length;while(++t-1){}return t}var Mw=charsStartIndex;var Tw=/^\s+|\s+$/g;function trim(e,r,t){e=ca(e);if(e&&(t||r===undefined)){return e.replace(Tw,"")}if(!e||!(r=L(r))){return e}var n=Co(e),i=Co(r),a=Mw(n,i),o=Cw(n,i)+1;return Va(n,a,o).join("")}var Bw=trim;var Pw=/\s+$/;function trimEnd(e,r,t){e=ca(e);if(e&&(t||r===undefined)){return e.replace(Pw,"")}if(!e||!(r=L(r))){return e}var n=Co(e),i=Cw(n,Co(r))+1;return Va(n,0,i).join("")}var Dw=trimEnd;var Lw=/^\s+/;function trimStart(e,r,t){e=ca(e);if(e&&(t||r===undefined)){return e.replace(Lw,"")}if(!e||!(r=L(r))){return e}var n=Co(e),i=Mw(n,Co(r));return Va(n,i).join("")}var $w=trimStart;var zw=30,Nw="...";var Fw=/\w*$/;function truncate(e,r){var t=zw,n=Nw;if(F(r)){var i="separator"in r?r.separator:i;t="length"in r?V(r.length):t;n="omission"in r?L(r.omission):n}e=ca(e);var a=e.length;if(fo(e)){var o=Co(e);a=o.length}if(t>=a){return e}var u=t-Sb(n);if(u<1){return n}var f=o?Va(o,0,u).join(""):e.slice(0,u);if(i===undefined){return f+n}if(o){u+=f.length-u}if(ly(i)){if(e.slice(u).search(i)){var s,c=f;if(!i.global){i=RegExp(i.source,ca(Fw.exec(i))+"g")}i.lastIndex=0;while(s=i.exec(c)){var l=s.index}f=f.slice(0,l===undefined?u:l)}}else if(e.indexOf(L(i),u)!=u){var v=f.lastIndexOf(i);if(v>-1){f=f.slice(0,v)}}return f+n}var Uw=truncate;function unary(e){return Mt(e,1)}var qw=unary;var Gw={"&":"&","<":"<",">":">",""":'"',"'":"'"};var Kw=Lo(Gw);var Hw=Kw;var Zw=/&(?:amp|lt|gt|quot|#39);/g,Yw=RegExp(Zw.source);function unescape_unescape(e){e=ca(e);return e&&Yw.test(e)?e.replace(Zw,Hw):e}var Jw=unescape_unescape;var Xw=1/0;var Qw=!(Nf&&1/Gc(new Nf([,-0]))[1]==Xw)?Ke:function(e){return new Nf(e)};var Vw=Qw;var ex=200;function baseUniq(e,r,t){var n=-1,i=kr,a=e.length,o=true,u=[],f=u;if(t){o=false;i=Dv}else if(a>=ex){var s=r?null:Vw(e);if(s){return Gc(s)}o=false;i=zc;f=new Lc}else{f=r?[]:u}e:while(++n1||this.__actions__.length||!(n instanceof Ge)||!Vr(t)){return this.thru(i)}n=n.slice(t,+t+(r?1:0));n.__actions__.push({func:bw,args:[i],thisArg:undefined});return new er(n,this.__chain__).thru(function(e){if(r&&!e.length){e.push(undefined)}return e})});var Ix=Ex;function wrapperChain(){return Vu(this)}var Ax=wrapperChain;function wrapperReverse(){var e=this.__wrapped__;if(e instanceof Ge){var r=e;if(this.__actions__.length){r=new Ge(this)}r=r.reverse();r.__actions__.push({func:bw,args:[$_],thisArg:undefined});return new er(r,this.__chain__)}return this.thru($_)}var Rx=wrapperReverse;function baseXor(e,r,t){var n=e.length;if(n<2){return n?rx(e[0]):[]}var i=-1,a=Array(n);while(++i1?e[r-1]:undefined;t=typeof t=="function"?(e.pop(),t):undefined;return yx(e,t)});var Ux=Fx;var qx={chunk:tf,compact:Mc,concat:Tc,difference:Nv,differenceBy:qv,differenceWith:Kv,drop:Yv,dropRight:Jv,dropRightWhile:Qv,dropWhile:Vv,fill:Td,findIndex:$d,findLastIndex:Kd,first:Jd,flatten:wa,flattenDeep:ip,flattenDepth:ap,fromPairs:Sp,head:Jd,indexOf:Vp,initial:eh,intersection:ah,intersectionBy:uh,intersectionWith:sh,join:Oy,last:Fv,lastIndexOf:Wy,nth:wg,pull:e_,pullAll:Qb,pullAllBy:r_,pullAllWith:t_,pullAt:u_,remove:W_,reverse:$_,slice:nm,sortedIndex:bm,sortedIndexBy:_m,sortedIndexOf:mm,sortedLastIndex:wm,sortedLastIndexBy:xm,sortedLastIndexOf:Om,sortedUniq:jm,sortedUniqBy:Em,tail:Fm,take:Um,takeRight:qm,takeRightWhile:Gm,takeWhile:Km,union:nx,unionBy:ax,unionWith:ux,uniq:fx,uniqBy:sx,uniqWith:cx,unzip:hx,unzipWith:yx,without:Sx,xor:Cx,xorBy:Tx,xorWith:Px,zip:Lx,zipObject:zx,zipObjectDeep:Nx,zipWith:Ux};var Gx={countBy:nv,each:rd,eachRight:fd,every:kd,filter:Pd,find:Nd,findLast:Zd,flatMap:Vd,flatMapDeep:rp,flatMapDepth:tp,forEach:rd,forEachRight:fd,groupBy:Wp,includes:Xp,invokeMap:Eh,keyBy:Iy,map:Qd,orderBy:$g,partition:Fb,reduce:I_,reduceRight:R_,reject:k_,sample:q_,sampleSize:Z_,shuffle:V_,size:tm,some:um,sortBy:sm};var Kx={now:cv};var Hx={after:re,ary:Mt,before:za,bind:qa,bindKey:Xa,curry:ov,curryRight:fv,debounce:pv,defer:Tv,delay:Pv,flip:up,memoize:na,negate:dg,once:Tg,overArgs:Hg,partial:Db,partialRight:zb,rearg:j_,rest:B_,spread:Wm,throttle:gw,unary:qw,wrap:jx};var Zx={castArray:Hu,clone:Oc,cloneDeep:Ec,cloneDeepWith:Rc,cloneWith:Wc,conformsTo:Ul,eq:Bt,gt:Bp,gte:Dp,isArguments:nn,isArray:T,isArrayBuffer:Wh,isArrayLike:Gt,isArrayLikeObject:wv,isBoolean:Mh,isBuffer:vn,isDate:Lh,isElement:$h,isEmpty:qh,isEqual:Gh,isEqualWith:Kh,isError:Pa,isFinite:Zh,isFunction:ue,isInteger:Yh,isLength:qt,isMap:$s,isMatch:Jh,isMatchWith:Xh,isNaN:ey,isNative:iy,isNil:ay,isNull:oy,isNumber:Vh,isObject:F,isObjectLike:I,isPlainObject:Ma,isRegExp:ly,isSafeInteger:dy,isSet:qs,isString:Hp,isSymbol:R,isTypedArray:Zn,isUndefined:py,isWeakMap:yy,isWeakSet:by,lt:Ly,lte:zy,toArray:bg,toFinite:Q,toInteger:V,toLength:Cd,toNumber:Y,toPlainObject:Ov,toSafeInteger:Rw,toString:ca};var Yx={add:N,ceil:Qu,divide:Zv,floor:sp,max:Zy,maxBy:Yy,mean:Vy,meanBy:eg,min:ug,minBy:fg,multiply:lg,round:N_,subtract:$m,sum:zm,sumBy:Nm};var Jx={clamp:af,inRange:Gp,random:p_};var Xx={assign:fi,assignIn:hi,assignInWith:gi,assignWith:_i,at:Sa,create:iv,defaults:_v,defaultsDeep:kv,entries:yd,entriesIn:bd,extend:hi,extendWith:gi,findKey:Ud,findLastKey:Yd,forIn:mp,forInRight:wp,forOwn:xp,forOwnRight:Op,functions:Ep,functionsIn:Ip,get:ha,has:Np,hasIn:Rl,invert:hh,invertBy:mh,invoke:Sh,keys:ii,keysIn:di,mapKeys:Ny,mapValues:Fy,merge:tg,mergeWith:Av,omit:Rg,omitBy:Mg,pick:Gb,pickBy:Cg,result:P_,set:Y_,setWith:J_,toPairs:yd,toPairsIn:bd,transform:Ww,unset:dx,update:bx,updateWith:_x,values:Yp,valuesIn:xx};var Qx={at:Ix,chain:Vu,commit:Cc,lodash:ar,next:_g,plant:Kb,reverse:Rx,tap:Hm,thru:bw,toIterator:Ow,toJSON:jw,value:jw,valueOf:jw,wrapperChain:Ax};var Vx={camelCase:Ku,capitalize:Po,deburr:Yo,endsWith:sd,escape:Sd,escapeRegExp:Id,kebabCase:jy,lowerCase:My,lowerFirst:By,pad:Rb,padEnd:kb,padStart:Wb,parseInt:Tb,repeat:C_,replace:M_,snakeCase:am,split:Am,startCase:Mm,startsWith:Tm,template:hw,templateSettings:ow,toLower:Ew,toUpper:kw,trim:Bw,trimEnd:Dw,trimStart:$w,truncate:Uw,unescape:Jw,upperCase:wx,upperFirst:Bo,words:Nu};var eO={attempt:La,bindAll:Ka,cond:Ll,conforms:Fl,constant:br,defaultTo:hv,flow:gp,flowRight:_p,identity:te,iteratee:my,matches:qy,matchesProperty:Ky,method:ig,methodOf:og,mixin:sg,noop:Ke,nthArg:xg,over:Fg,overEvery:Yg,overSome:Xg,property:Bl,propertyOf:Hb,range:m_,rangeRight:x_,stubArray:xf,stubFalse:an,stubObject:Bm,stubString:Pm,stubTrue:Dm,times:xw,toPath:Iw,uniqueId:vx};function lazyClone(){var e=new Ge(this.__wrapped__);e.__actions__=rr(this.__actions__);e.__dir__=this.__dir__;e.__filtered__=this.__filtered__;e.__iteratees__=rr(this.__iteratees__);e.__takeCount__=this.__takeCount__;e.__views__=rr(this.__views__);return e}var rO=lazyClone;function lazyReverse(){if(this.__filtered__){var e=new Ge(this);e.__dir__=-1;e.__filtered__=true}else{e=this.clone();e.__dir__*=-1}return e}var tO=lazyReverse;var nO=Math.max,iO=Math.min;function getView(e,r,t){var n=-1,i=t.length;while(++n0||r<0)){return new Ge(t)}if(e<0){t=t.takeRight(-e)}else if(e){t=t.drop(e)}if(r!==undefined){r=V(r);t=r<0?t.dropRight(-r):t.take(r-e)}return t};Ge.prototype.takeRightWhile=function(e){return this.reverse().takeWhile(e).reverse()};Ge.prototype.toArray=function(){return this.take(pO)};Zl(Ge.prototype,function(e,r){var t=/^(?:filter|find|map|reject)|While$/.test(r),n=/^(?:head|last)$/.test(r),i=ar[n?"take"+(r=="last"?"Right":""):r],a=n||/^find/.test(r);if(!i){return}ar.prototype[r]=function(){var r=this.__wrapped__,o=n?[1]:arguments,u=r instanceof Ge,f=o[0],s=u||T(r);var c=function(e){var r=i.apply(ar,ga([e],o));return n&&l?r[0]:r};if(s&&t&&typeof f=="function"&&f.length!=1){u=s=false}var l=this.__chain__,v=!!this.__actions__.length,d=a&&!l,p=u&&!v;if(!a&&s){r=p?r:new Ge(this);var h=e.apply(r,o);h.__actions__.push({func:bw,args:[c],thisArg:undefined});return new er(h,l)}if(d&&p){return e.apply(this,o)}h=this.thru(c);return d?n?h.value()[0]:h.value():h}});jr(["pop","push","shift","sort","splice","unshift"],function(e){var r=hO[e],t=/^(?:push|sort|unshift)$/.test(e)?"tap":"thru",n=/^(?:pop|shift)$/.test(e);ar.prototype[e]=function(){var e=arguments;if(n&&!this.__chain__){var i=this.value();return r.apply(T(i)?i:[],e)}return this[t](function(t){return r.apply(T(t)?t:[],e)})}});Zl(Ge.prototype,function(e,r){var t=ar[r];if(t){var n=t.name+"";if(!gO.call(Je,n)){Je[n]=[]}Je[n].push({name:r,func:t})}});Je[ct(undefined,lO).name]=[{name:"wrapper",func:undefined}];Ge.prototype.clone=rO;Ge.prototype.reverse=tO;Ge.prototype.value=sO;ar.prototype.at=Qx.at;ar.prototype.chain=Qx.wrapperChain;ar.prototype.commit=Qx.commit;ar.prototype.next=Qx.next;ar.prototype.plant=Qx.plant;ar.prototype.reverse=Qx.reverse;ar.prototype.toJSON=ar.prototype.valueOf=ar.prototype.value=Qx.value;ar.prototype.first=ar.prototype.head;if(bO){ar.prototype[bO]=Qx.toIterator}var xO=ar;class image_tag_ImageTag{static createForBase(e){const r="gableroux";const t="unity3d";return new this({repository:r,name:t,version:e})}static createForAction(e){const r="";const t="unity-action";return new this({repository:r,name:t,version:e})}constructor({repository:e="",name:r,version:t}){if(!image_tag_ImageTag.versionPattern.test(t)){throw new Error(`Invalid version "${t}".`)}Object.assign(this,{repository:e,name:r,version:t})}static get versionPattern(){return/^20\d{2}\.\d\.\w{3,4}|3$/}get tag(){return this.version}get image(){return $w(`${this.repository}/${this.name}`,"/")}toString(){return`${this.image}:${this.tag}`}}var OO=image_tag_ImageTag;class docker_Docker{static async build(e,r=false){const{path:t,dockerfile:n,baseImage:i}=e;const{version:a}=i;const o=OO.createForAction(a);const f=`docker build ${t} --file ${n} --build-arg IMAGE=${i} --tag ${o}`;await Object(u.exec)(f,null,{silent:r});return o}static async run(e,r,t=false){const{unityVersion:n,workspace:i,projectPath:a,artifactsPath:o}=r;const f=`docker run --workdir /github/workspace --rm --env UNITY_LICENSE --env UNITY_EMAIL --env UNITY_PASSWORD --env UNITY_SERIAL --env UNITY_VERSION=${n} --env PROJECT_PATH=${a} --env ARTIFACTS_PATH=${o}\n --env HOME=/github/home --env GITHUB_REF --env GITHUB_SHA --env GITHUB_REPOSITORY --env GITHUB_ACTOR --env GITHUB_WORKFLOW --env GITHUB_HEAD_REF --env GITHUB_BASE_REF --env GITHUB_EVENT_NAME --env GITHUB_WORKSPACE=/github/workspace --env GITHUB_ACTION --env GITHUB_EVENT_PATH --env RUNNER_OS --env RUNNER_TOOL_CACHE --env RUNNER_TEMP --env RUNNER_WORKSPACE --volume "/var/run/docker.sock":"/var/run/docker.sock" --volume "/home/runner/work/_temp/_github_home":"/github/home" --volume "/home/runner/work/_temp/_github_workflow":"/github/workflow" --volume "${i}":"/github/workspace" ${e}`;await Object(u.exec)(f,null,{silent:t})}}var SO=docker_Docker;class input_Input{static get testModes(){return["all","playmode","editmode"]}static isValidFolderName(e){const r=new RegExp(/^\.?\/?(\.?\w+\/?)*$/);return r.test(e)}static getFromUser(){const e=Object(n.getInput)("unityVersion")||"2019.2.11f1";const r=Object(n.getInput)("testMode")||"all";const t=Object(n.getInput)("testMode")||".";const i=Object(n.getInput)("testMode")||"artifacts";if(!Xp(this.testModes,r)){throw new Error(`Invalid testMode ${r}`)}if(!this.isValidFolderName(i)){throw new Error(`Invalid artifactsPath "${i}"`)}if(!this.isValidFolderName(t)){throw new Error(`Invalid projectPath "${t}"`)}const a=t.replace(/\/$/,"");const o=i.replace(/\/$/,"");return{unityVersion:e,projectPath:a,testMode:r,artifactsPath:o}}}var jO=input_Input;const EO=t(470);class Output{static async setArtifactsPath(e){await EO.setOutput("artifactsPath",e)}}var IO=Output;async function src_action(){o.checkCompatibility();const{dockerfile:e,workspace:r,actionFolder:t}=o;const{unityVersion:n,projectPath:i,artifactsPath:a}=jO.getFromUser();const u=OO.createForBase(n);const f=await SO.build({path:t,dockerfile:e,baseImage:u});await SO.run(f,{workspace:r,unityVersion:n,projectPath:i,artifactsPath:a});await IO.setArtifactsPath(a)}src_action().catch(e=>{Object(n.setFailed)(e.message)})},614:function(e){e.exports=require("events")},622:function(e){e.exports=require("path")},669:function(e){e.exports=require("util")},672:function(e,r,t){"use strict";var n=this&&this.__awaiter||function(e,r,t,n){function adopt(e){return e instanceof t?e:new t(function(r){r(e)})}return new(t||(t=Promise))(function(t,i){function fulfilled(e){try{step(n.next(e))}catch(e){i(e)}}function rejected(e){try{step(n["throw"](e))}catch(e){i(e)}}function step(e){e.done?t(e.value):adopt(e.value).then(fulfilled,rejected)}step((n=n.apply(e,r||[])).next())})};var i;Object.defineProperty(r,"__esModule",{value:true});const a=t(357);const o=t(747);const u=t(622);i=o.promises,r.chmod=i.chmod,r.copyFile=i.copyFile,r.lstat=i.lstat,r.mkdir=i.mkdir,r.readdir=i.readdir,r.readlink=i.readlink,r.rename=i.rename,r.rmdir=i.rmdir,r.stat=i.stat,r.symlink=i.symlink,r.unlink=i.unlink;r.IS_WINDOWS=process.platform==="win32";function exists(e){return n(this,void 0,void 0,function*(){try{yield r.stat(e)}catch(e){if(e.code==="ENOENT"){return false}throw e}return true})}r.exists=exists;function isDirectory(e,t=false){return n(this,void 0,void 0,function*(){const n=t?yield r.stat(e):yield r.lstat(e);return n.isDirectory()})}r.isDirectory=isDirectory;function isRooted(e){e=normalizeSeparators(e);if(!e){throw new Error('isRooted() parameter "p" cannot be empty')}if(r.IS_WINDOWS){return e.startsWith("\\")||/^[A-Z]:/i.test(e)}return e.startsWith("/")}r.isRooted=isRooted;function mkdirP(e,t=1e3,i=1){return n(this,void 0,void 0,function*(){a.ok(e,"a path argument must be provided");e=u.resolve(e);if(i>=t)return r.mkdir(e);try{yield r.mkdir(e);return}catch(n){switch(n.code){case"ENOENT":{yield mkdirP(u.dirname(e),t,i+1);yield r.mkdir(e);return}default:{let t;try{t=yield r.stat(e)}catch(e){throw n}if(!t.isDirectory())throw n}}}})}r.mkdirP=mkdirP;function tryGetExecutablePath(e,t){return n(this,void 0,void 0,function*(){let n=undefined;try{n=yield r.stat(e)}catch(r){if(r.code!=="ENOENT"){console.log(`Unexpected error attempting to determine if executable file exists '${e}': ${r}`)}}if(n&&n.isFile()){if(r.IS_WINDOWS){const r=u.extname(e).toUpperCase();if(t.some(e=>e.toUpperCase()===r)){return e}}else{if(isUnixExecutable(n)){return e}}}const i=e;for(const a of t){e=i+a;n=undefined;try{n=yield r.stat(e)}catch(r){if(r.code!=="ENOENT"){console.log(`Unexpected error attempting to determine if executable file exists '${e}': ${r}`)}}if(n&&n.isFile()){if(r.IS_WINDOWS){try{const t=u.dirname(e);const n=u.basename(e).toUpperCase();for(const i of yield r.readdir(t)){if(n===i.toUpperCase()){e=u.join(t,i);break}}}catch(r){console.log(`Unexpected error attempting to determine the actual case of the file '${e}': ${r}`)}return e}else{if(isUnixExecutable(n)){return e}}}}return""})}r.tryGetExecutablePath=tryGetExecutablePath;function normalizeSeparators(e){e=e||"";if(r.IS_WINDOWS){e=e.replace(/\//g,"\\");return e.replace(/\\\\+/g,"\\")}return e.replace(/\/\/+/g,"/")}function isUnixExecutable(e){return(e.mode&1)>0||(e.mode&8)>0&&e.gid===process.getgid()||(e.mode&64)>0&&e.uid===process.getuid()}},747:function(e){e.exports=require("fs")},986:function(e,r,t){"use strict";var n=this&&this.__awaiter||function(e,r,t,n){function adopt(e){return e instanceof t?e:new t(function(r){r(e)})}return new(t||(t=Promise))(function(t,i){function fulfilled(e){try{step(n.next(e))}catch(e){i(e)}}function rejected(e){try{step(n["throw"](e))}catch(e){i(e)}}function step(e){e.done?t(e.value):adopt(e.value).then(fulfilled,rejected)}step((n=n.apply(e,r||[])).next())})};Object.defineProperty(r,"__esModule",{value:true});const i=t(9);function exec(e,r,t){return n(this,void 0,void 0,function*(){const n=i.argStringToArray(e);if(n.length===0){throw new Error(`Parameter 'commandLine' cannot be null or empty.`)}const a=n[0];r=n.slice(1).concat(r||[]);const o=new i.ToolRunner(a,r,t);return o.exec()})}r.exec=exec}},function(e){"use strict";!function(){e.r=function(e){if(typeof Symbol!=="undefined"&&Symbol.toStringTag){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"})}Object.defineProperty(e,"__esModule",{value:true})}}();!function(){var r=Object.prototype.hasOwnProperty;e.d=function(e,t,n){if(!r.call(e,t)){Object.defineProperty(e,t,{enumerable:true,get:n})}}}();!function(){e.t=function(r,t){if(t&1)r=this(r);if(t&8)return r;if(t&4&&typeof r==="object"&&r&&r.__esModule)return r;var n=Object.create(null);e.r(n);Object.defineProperty(n,"default",{enumerable:true,value:r});if(t&2&&typeof r!="string")for(var i in r)e.d(n,i,function(e){return r[e]}.bind(null,i));return n}}();!function(){e.n=function(r){var t=r&&r.__esModule?function getDefault(){return r["default"]}:function getModuleExports(){return r};e.d(t,"a",t);return t}}();!function(){e.hmd=function(e){e=Object.create(e);if(!e.children)e.children=[];Object.defineProperty(e,"loaded",{enumerable:true,get:function(){return e.l}});Object.defineProperty(e,"id",{enumerable:true,get:function(){return e.i}});Object.defineProperty(e,"exports",{enumerable:true,set:function(){throw new Error("ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: "+e.id)}});return e}}()}); \ No newline at end of file +module.exports=function(e,r){"use strict";var t={};function __webpack_require__(r){if(t[r]){return t[r].exports}var n=t[r]={i:r,l:false,exports:{}};e[r].call(n.exports,n,n.exports,__webpack_require__);n.l=true;return n.exports}__webpack_require__.ab=__dirname+"/";function startup(){return __webpack_require__(501)}r(__webpack_require__);return startup()}({1:function(e,r,t){"use strict";var n=this&&this.__awaiter||function(e,r,t,n){function adopt(e){return e instanceof t?e:new t(function(r){r(e)})}return new(t||(t=Promise))(function(t,i){function fulfilled(e){try{step(n.next(e))}catch(e){i(e)}}function rejected(e){try{step(n["throw"](e))}catch(e){i(e)}}function step(e){e.done?t(e.value):adopt(e.value).then(fulfilled,rejected)}step((n=n.apply(e,r||[])).next())})};Object.defineProperty(r,"__esModule",{value:true});const i=t(129);const a=t(622);const o=t(669);const u=t(672);const f=o.promisify(i.exec);function cp(e,r,t={}){return n(this,void 0,void 0,function*(){const{force:n,recursive:i}=readCopyOptions(t);const o=(yield u.exists(r))?yield u.stat(r):null;if(o&&o.isFile()&&!n){return}const f=o&&o.isDirectory()?a.join(r,a.basename(e)):r;if(!(yield u.exists(e))){throw new Error(`no such file or directory: ${e}`)}const s=yield u.stat(e);if(s.isDirectory()){if(!i){throw new Error(`Failed to copy. ${e} is a directory, but tried to copy without recursive flag.`)}else{yield cpDirRecursive(e,f,0,n)}}else{if(a.relative(e,f)===""){throw new Error(`'${f}' and '${e}' are the same file`)}yield copyFile(e,f,n)}})}r.cp=cp;function mv(e,r,t={}){return n(this,void 0,void 0,function*(){if(yield u.exists(r)){let n=true;if(yield u.isDirectory(r)){r=a.join(r,a.basename(e));n=yield u.exists(r)}if(n){if(t.force==null||t.force){yield rmRF(r)}else{throw new Error("Destination already exists")}}}yield mkdirP(a.dirname(r));yield u.rename(e,r)})}r.mv=mv;function rmRF(e){return n(this,void 0,void 0,function*(){if(u.IS_WINDOWS){try{if(yield u.isDirectory(e,true)){yield f(`rd /s /q "${e}"`)}else{yield f(`del /f /a "${e}"`)}}catch(e){if(e.code!=="ENOENT")throw e}try{yield u.unlink(e)}catch(e){if(e.code!=="ENOENT")throw e}}else{let r=false;try{r=yield u.isDirectory(e)}catch(e){if(e.code!=="ENOENT")throw e;return}if(r){yield f(`rm -rf "${e}"`)}else{yield u.unlink(e)}}})}r.rmRF=rmRF;function mkdirP(e){return n(this,void 0,void 0,function*(){yield u.mkdirP(e)})}r.mkdirP=mkdirP;function which(e,r){return n(this,void 0,void 0,function*(){if(!e){throw new Error("parameter 'tool' is required")}if(r){const r=yield which(e,false);if(!r){if(u.IS_WINDOWS){throw new Error(`Unable to locate executable file: ${e}. Please verify either the file path exists or the file can be found within a directory specified by the PATH environment variable. Also verify the file has a valid extension for an executable file.`)}else{throw new Error(`Unable to locate executable file: ${e}. Please verify either the file path exists or the file can be found within a directory specified by the PATH environment variable. Also check the file mode to verify the file is executable.`)}}}try{const r=[];if(u.IS_WINDOWS&&process.env.PATHEXT){for(const e of process.env.PATHEXT.split(a.delimiter)){if(e){r.push(e)}}}if(u.isRooted(e)){const t=yield u.tryGetExecutablePath(e,r);if(t){return t}return""}if(e.includes("/")||u.IS_WINDOWS&&e.includes("\\")){return""}const t=[];if(process.env.PATH){for(const e of process.env.PATH.split(a.delimiter)){if(e){t.push(e)}}}for(const n of t){const t=yield u.tryGetExecutablePath(n+a.sep+e,r);if(t){return t}}return""}catch(e){throw new Error(`which failed with message ${e.message}`)}})}r.which=which;function readCopyOptions(e){const r=e.force==null?true:e.force;const t=Boolean(e.recursive);return{force:r,recursive:t}}function cpDirRecursive(e,r,t,i){return n(this,void 0,void 0,function*(){if(t>=255)return;t++;yield mkdirP(r);const n=yield u.readdir(e);for(const a of n){const n=`${e}/${a}`;const o=`${r}/${a}`;const f=yield u.lstat(n);if(f.isDirectory()){yield cpDirRecursive(n,o,t,i)}else{yield copyFile(n,o,i)}}yield u.chmod(r,(yield u.stat(e)).mode)})}function copyFile(e,r,t){return n(this,void 0,void 0,function*(){if((yield u.lstat(e)).isSymbolicLink()){try{yield u.lstat(r);yield u.unlink(r)}catch(e){if(e.code==="EPERM"){yield u.chmod(r,"0666");yield u.unlink(r)}}const t=yield u.readlink(e);yield u.symlink(t,r,u.IS_WINDOWS?"junction":null)}else if(!(yield u.exists(r))||t){yield u.copyFile(e,r)}})}},9:function(e,r,t){"use strict";var n=this&&this.__awaiter||function(e,r,t,n){function adopt(e){return e instanceof t?e:new t(function(r){r(e)})}return new(t||(t=Promise))(function(t,i){function fulfilled(e){try{step(n.next(e))}catch(e){i(e)}}function rejected(e){try{step(n["throw"](e))}catch(e){i(e)}}function step(e){e.done?t(e.value):adopt(e.value).then(fulfilled,rejected)}step((n=n.apply(e,r||[])).next())})};Object.defineProperty(r,"__esModule",{value:true});const i=t(87);const a=t(614);const o=t(129);const u=t(622);const f=t(1);const s=t(672);const c=process.platform==="win32";class ToolRunner extends a.EventEmitter{constructor(e,r,t){super();if(!e){throw new Error("Parameter 'toolPath' cannot be null or empty.")}this.toolPath=e;this.args=r||[];this.options=t||{}}_debug(e){if(this.options.listeners&&this.options.listeners.debug){this.options.listeners.debug(e)}}_getCommandString(e,r){const t=this._getSpawnFileName();const n=this._getSpawnArgs(e);let i=r?"":"[command]";if(c){if(this._isCmdFile()){i+=t;for(const e of n){i+=` ${e}`}}else if(e.windowsVerbatimArguments){i+=`"${t}"`;for(const e of n){i+=` ${e}`}}else{i+=this._windowsQuoteCmdArg(t);for(const e of n){i+=` ${this._windowsQuoteCmdArg(e)}`}}}else{i+=t;for(const e of n){i+=` ${e}`}}return i}_processLineBuffer(e,r,t){try{let n=r+e.toString();let a=n.indexOf(i.EOL);while(a>-1){const e=n.substring(0,a);t(e);n=n.substring(a+i.EOL.length);a=n.indexOf(i.EOL)}r=n}catch(e){this._debug(`error processing line. Failed with error ${e}`)}}_getSpawnFileName(){if(c){if(this._isCmdFile()){return process.env["COMSPEC"]||"cmd.exe"}}return this.toolPath}_getSpawnArgs(e){if(c){if(this._isCmdFile()){let r=`/D /S /C "${this._windowsQuoteCmdArg(this.toolPath)}`;for(const t of this.args){r+=" ";r+=e.windowsVerbatimArguments?t:this._windowsQuoteCmdArg(t)}r+='"';return[r]}}return this.args}_endsWith(e,r){return e.endsWith(r)}_isCmdFile(){const e=this.toolPath.toUpperCase();return this._endsWith(e,".CMD")||this._endsWith(e,".BAT")}_windowsQuoteCmdArg(e){if(!this._isCmdFile()){return this._uvQuoteCmdArg(e)}if(!e){return'""'}const r=[" ","\t","&","(",")","[","]","{","}","^","=",";","!","'","+",",","`","~","|","<",">",'"'];let t=false;for(const n of e){if(r.some(e=>e===n)){t=true;break}}if(!t){return e}let n='"';let i=true;for(let r=e.length;r>0;r--){n+=e[r-1];if(i&&e[r-1]==="\\"){n+="\\"}else if(e[r-1]==='"'){i=true;n+='"'}else{i=false}}n+='"';return n.split("").reverse().join("")}_uvQuoteCmdArg(e){if(!e){return'""'}if(!e.includes(" ")&&!e.includes("\t")&&!e.includes('"')){return e}if(!e.includes('"')&&!e.includes("\\")){return`"${e}"`}let r='"';let t=true;for(let n=e.length;n>0;n--){r+=e[n-1];if(t&&e[n-1]==="\\"){r+="\\"}else if(e[n-1]==='"'){t=true;r+="\\"}else{t=false}}r+='"';return r.split("").reverse().join("")}_cloneExecOptions(e){e=e||{};const r={cwd:e.cwd||process.cwd(),env:e.env||process.env,silent:e.silent||false,windowsVerbatimArguments:e.windowsVerbatimArguments||false,failOnStdErr:e.failOnStdErr||false,ignoreReturnCode:e.ignoreReturnCode||false,delay:e.delay||1e4};r.outStream=e.outStream||process.stdout;r.errStream=e.errStream||process.stderr;return r}_getSpawnOptions(e,r){e=e||{};const t={};t.cwd=e.cwd;t.env=e.env;t["windowsVerbatimArguments"]=e.windowsVerbatimArguments||this._isCmdFile();if(e.windowsVerbatimArguments){t.argv0=`"${r}"`}return t}exec(){return n(this,void 0,void 0,function*(){if(!s.isRooted(this.toolPath)&&(this.toolPath.includes("/")||c&&this.toolPath.includes("\\"))){this.toolPath=u.resolve(process.cwd(),this.options.cwd||process.cwd(),this.toolPath)}this.toolPath=yield f.which(this.toolPath,true);return new Promise((e,r)=>{this._debug(`exec tool: ${this.toolPath}`);this._debug("arguments:");for(const e of this.args){this._debug(` ${e}`)}const t=this._cloneExecOptions(this.options);if(!t.silent&&t.outStream){t.outStream.write(this._getCommandString(t)+i.EOL)}const n=new ExecState(t,this.toolPath);n.on("debug",e=>{this._debug(e)});const a=this._getSpawnFileName();const u=o.spawn(a,this._getSpawnArgs(t),this._getSpawnOptions(this.options,a));const f="";if(u.stdout){u.stdout.on("data",e=>{if(this.options.listeners&&this.options.listeners.stdout){this.options.listeners.stdout(e)}if(!t.silent&&t.outStream){t.outStream.write(e)}this._processLineBuffer(e,f,e=>{if(this.options.listeners&&this.options.listeners.stdline){this.options.listeners.stdline(e)}})})}const s="";if(u.stderr){u.stderr.on("data",e=>{n.processStderr=true;if(this.options.listeners&&this.options.listeners.stderr){this.options.listeners.stderr(e)}if(!t.silent&&t.errStream&&t.outStream){const r=t.failOnStdErr?t.errStream:t.outStream;r.write(e)}this._processLineBuffer(e,s,e=>{if(this.options.listeners&&this.options.listeners.errline){this.options.listeners.errline(e)}})})}u.on("error",e=>{n.processError=e.message;n.processExited=true;n.processClosed=true;n.CheckComplete()});u.on("exit",e=>{n.processExitCode=e;n.processExited=true;this._debug(`Exit code ${e} received from tool '${this.toolPath}'`);n.CheckComplete()});u.on("close",e=>{n.processExitCode=e;n.processExited=true;n.processClosed=true;this._debug(`STDIO streams have closed for tool '${this.toolPath}'`);n.CheckComplete()});n.on("done",(t,n)=>{if(f.length>0){this.emit("stdline",f)}if(s.length>0){this.emit("errline",s)}u.removeAllListeners();if(t){r(t)}else{e(n)}})})})}}r.ToolRunner=ToolRunner;function argStringToArray(e){const r=[];let t=false;let n=false;let i="";function append(e){if(n&&e!=='"'){i+="\\"}i+=e;n=false}for(let a=0;a0){r.push(i);i=""}continue}append(o)}if(i.length>0){r.push(i.trim())}return r}r.argStringToArray=argStringToArray;class ExecState extends a.EventEmitter{constructor(e,r){super();this.processClosed=false;this.processError="";this.processExitCode=0;this.processExited=false;this.processStderr=false;this.delay=1e4;this.done=false;this.timeout=null;if(!r){throw new Error("toolPath must not be empty")}this.options=e;this.toolPath=r;if(e.delay){this.delay=e.delay}}CheckComplete(){if(this.done){return}if(this.processClosed){this._setResult()}else if(this.processExited){this.timeout=setTimeout(ExecState.HandleTimeout,this.delay,this)}}_debug(e){this.emit("debug",e)}_setResult(){let e;if(this.processExited){if(this.processError){e=new Error(`There was an error when attempting to execute the process '${this.toolPath}'. This may indicate the process failed to start. Error: ${this.processError}`)}else if(this.processExitCode!==0&&!this.options.ignoreReturnCode){e=new Error(`The process '${this.toolPath}' failed with exit code ${this.processExitCode}`)}else if(this.processStderr&&this.options.failOnStdErr){e=new Error(`The process '${this.toolPath}' failed because one or more lines were written to the STDERR stream`)}}if(this.timeout){clearTimeout(this.timeout);this.timeout=null}this.done=true;this.emit("done",e,this.processExitCode)}static HandleTimeout(e){if(e.done){return}if(!e.processClosed&&e.processExited){const r=`The STDIO streams did not close within ${e.delay/1e3} seconds of the exit event from process '${e.toolPath}'. This may indicate a child process inherited the STDIO streams and has not yet exited.`;e._debug(r)}e._setResult()}}},87:function(e){e.exports=require("os")},129:function(e){e.exports=require("child_process")},357:function(e){e.exports=require("assert")},431:function(e,r,t){"use strict";Object.defineProperty(r,"__esModule",{value:true});const n=t(87);function issueCommand(e,r,t){const i=new Command(e,r,t);process.stdout.write(i.toString()+n.EOL)}r.issueCommand=issueCommand;function issue(e,r=""){issueCommand(e,{},r)}r.issue=issue;const i="::";class Command{constructor(e,r,t){if(!e){e="missing.command"}this.command=e;this.properties=r;this.message=t}toString(){let e=i+this.command;if(this.properties&&Object.keys(this.properties).length>0){e+=" ";for(const r in this.properties){if(this.properties.hasOwnProperty(r)){const t=this.properties[r];if(t){e+=`${r}=${escape(`${t||""}`)},`}}}}e+=i;const r=`${this.message||""}`;e+=escapeData(r);return e}}function escapeData(e){return e.replace(/\r/g,"%0D").replace(/\n/g,"%0A")}function escape(e){return e.replace(/\r/g,"%0D").replace(/\n/g,"%0A").replace(/]/g,"%5D").replace(/;/g,"%3B")}},470:function(e,r,t){"use strict";var n=this&&this.__awaiter||function(e,r,t,n){function adopt(e){return e instanceof t?e:new t(function(r){r(e)})}return new(t||(t=Promise))(function(t,i){function fulfilled(e){try{step(n.next(e))}catch(e){i(e)}}function rejected(e){try{step(n["throw"](e))}catch(e){i(e)}}function step(e){e.done?t(e.value):adopt(e.value).then(fulfilled,rejected)}step((n=n.apply(e,r||[])).next())})};Object.defineProperty(r,"__esModule",{value:true});const i=t(431);const a=t(87);const o=t(622);var u;(function(e){e[e["Success"]=0]="Success";e[e["Failure"]=1]="Failure"})(u=r.ExitCode||(r.ExitCode={}));function exportVariable(e,r){process.env[e]=r;i.issueCommand("set-env",{name:e},r)}r.exportVariable=exportVariable;function setSecret(e){i.issueCommand("add-mask",{},e)}r.setSecret=setSecret;function addPath(e){i.issueCommand("add-path",{},e);process.env["PATH"]=`${e}${o.delimiter}${process.env["PATH"]}`}r.addPath=addPath;function getInput(e,r){const t=process.env[`INPUT_${e.replace(/ /g,"_").toUpperCase()}`]||"";if(r&&r.required&&!t){throw new Error(`Input required and not supplied: ${e}`)}return t.trim()}r.getInput=getInput;function setOutput(e,r){i.issueCommand("set-output",{name:e},r)}r.setOutput=setOutput;function setFailed(e){process.exitCode=u.Failure;error(e)}r.setFailed=setFailed;function debug(e){i.issueCommand("debug",{},e)}r.debug=debug;function error(e){i.issue("error",e)}r.error=error;function warning(e){i.issue("warning",e)}r.warning=warning;function info(e){process.stdout.write(e+a.EOL)}r.info=info;function startGroup(e){i.issue("group",e)}r.startGroup=startGroup;function endGroup(){i.issue("endgroup")}r.endGroup=endGroup;function group(e,r){return n(this,void 0,void 0,function*(){startGroup(e);let t;try{t=yield r()}finally{endGroup()}return t})}r.group=group;function saveState(e,r){i.issueCommand("save-state",{name:e},r)}r.saveState=saveState;function getState(e){return process.env[`STATE_${e}`]||""}r.getState=getState},501:function(e,r,t){"use strict";t.r(r);var n=t(470);var i=t(622);var a=t.n(i);class action_Action{static get supportedPlatforms(){return["linux"]}static get isRunningLocally(){return process.env.RUNNER_WORKSPACE===undefined}static get isRunningFromSource(){return a().basename(__dirname)==="model"}static get name(){return"unity-test-runner"}static get rootFolder(){if(action_Action.isRunningFromSource){return a().dirname(a().dirname(a().dirname(__filename)))}return a().dirname(a().dirname(__filename))}static get actionFolder(){return`${action_Action.rootFolder}/action`}static get dockerfile(){return`${action_Action.actionFolder}/Dockerfile`}static get workspace(){return process.env.GITHUB_WORKSPACE}static checkCompatibility(){const e=process.platform;if(!action_Action.supportedPlatforms.includes(e)){throw new Error(`Currently ${e}-platform is not supported`)}}}var o=action_Action;var u=t(986);var f=typeof global=="object"&&global&&global.Object===Object&&global;var s=f;var c=typeof self=="object"&&self&&self.Object===Object&&self;var l=s||c||Function("return this")();var v=l;var d=v.Symbol;var p=d;var h=Object.prototype;var y=h.hasOwnProperty;var g=h.toString;var b=p?p.toStringTag:undefined;function getRawTag(e){var r=y.call(e,b),t=e[b];try{e[b]=undefined;var n=true}catch(e){}var i=g.call(e);if(n){if(r){e[b]=t}else{delete e[b]}}return i}var _=getRawTag;var m=Object.prototype;var w=m.toString;function objectToString(e){return w.call(e)}var x=objectToString;var O="[object Null]",S="[object Undefined]";var j=p?p.toStringTag:undefined;function baseGetTag(e){if(e==null){return e===undefined?S:O}return j&&j in Object(e)?_(e):x(e)}var E=baseGetTag;function isObjectLike(e){return e!=null&&typeof e=="object"}var I=isObjectLike;var A="[object Symbol]";function isSymbol(e){return typeof e=="symbol"||I(e)&&E(e)==A}var R=isSymbol;var k=0/0;function baseToNumber(e){if(typeof e=="number"){return e}if(R(e)){return k}return+e}var W=baseToNumber;function arrayMap(e,r){var t=-1,n=e==null?0:e.length,i=Array(n);while(++t0){if(++r>=ur){return arguments[0]}}else{r=0}return e.apply(undefined,arguments)}}var cr=shortOut;var lr=cr(ke);var vr=lr;var dr=/\{\n\/\* \[wrapped with (.+)\] \*/,pr=/,? & /;function getWrapDetails(e){var r=e.match(dr);return r?r[1].split(pr):[]}var hr=getWrapDetails;var yr=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/;function insertWrapDetails(e,r){var t=r.length;if(!t){return e}var n=t-1;r[n]=(t>1?"& ":"")+r[n];r=r.join(t>2?", ":" ");return e.replace(yr,"{\n/* [wrapped with "+r+"] */\n")}var gr=insertWrapDetails;function constant(e){return function(){return e}}var br=constant;var _r=function(){try{var e=Se(Object,"defineProperty");e({},"",{});return e}catch(e){}}();var mr=_r;var wr=!mr?te:function(e,r){return mr(e,"toString",{configurable:true,enumerable:false,value:br(r),writable:true})};var xr=wr;var Or=cr(xr);var Sr=Or;function arrayEach(e,r){var t=-1,n=e==null?0:e.length;while(++t-1}var kr=arrayIncludes;var Wr=1,Cr=2,Mr=8,Tr=16,Br=32,Pr=64,Dr=128,Lr=256,$r=512;var zr=[["ary",Dr],["bind",Wr],["bindKey",Cr],["curry",Mr],["curryRight",Tr],["flip",$r],["partial",Br],["partialRight",Pr],["rearg",Lr]];function updateWrapDetails(e,r){jr(zr,function(t){var n="_."+t[0];if(r&t[1]&&!kr(e,n)){e.push(n)}});return e.sort()}var Nr=updateWrapDetails;function setWrapToString(e,r,t){var n=r+"";return Sr(e,gr(n,Nr(hr(n),t)))}var Fr=setWrapToString;var Ur=1,qr=2,Gr=4,Kr=8,Hr=32,Zr=64;function createRecurry(e,r,t,n,i,a,o,u,f,s){var c=r&Kr,l=c?o:undefined,v=c?undefined:o,d=c?a:undefined,p=c?undefined:a;r|=c?Hr:Zr;r&=~(c?Zr:Hr);if(!(r&Gr)){r&=~(Ur|qr)}var h=[e,r,i,d,l,p,v,u,f,s];var y=t.apply(undefined,h);if(or(e)){vr(y,h)}y.placeholder=n;return Fr(y,e,r)}var Yr=createRecurry;function getHolder(e){var r=e;return r.placeholder}var Jr=getHolder;var Xr=9007199254740991;var Qr=/^(?:0|[1-9]\d*)$/;function isIndex(e,r){var t=typeof e;r=r==null?Xr:r;return!!r&&(t=="number"||t!="symbol"&&Qr.test(e))&&(e>-1&&e%1==0&&e1){b.reverse()}if(c&&f-1&&e%1==0&&e<=Ut}var qt=isLength;function isArrayLike(e){return e!=null&&qt(e.length)&&!ue(e)}var Gt=isArrayLike;function isIterateeCall(e,r,t){if(!F(t)){return false}var n=typeof r;if(n=="number"?Gt(t)&&Vr(r,t.length):n=="string"&&r in t){return Bt(t[r],e)}return false}var Kt=isIterateeCall;function createAssigner(e){return Ft(function(r,t){var n=-1,i=t.length,a=i>1?t[i-1]:undefined,o=i>2?t[2]:undefined;a=e.length>3&&typeof a=="function"?(i--,a):undefined;if(o&&Kt(t[0],t[1],o)){a=i<3?undefined:a;i=1}r=Object(r);while(++n-1}var Ui=listCacheHas;function listCacheSet(e,r){var t=this.__data__,n=Li(t,e);if(n<0){++this.size;t.push([e,r])}else{t[n][1]=r}return this}var qi=listCacheSet;function ListCache(e){var r=-1,t=e==null?0:e.length;this.clear();while(++r0&&t(u)){if(r>1){baseFlatten(u,r-1,t,n,i)}else{ga(i,u)}}else if(!n){i[i.length]=u}}return i}var ma=baseFlatten;function flatten(e){var r=e==null?0:e.length;return r?ma(e,1):[]}var wa=flatten;function flatRest(e){return Sr(Nt(e,undefined,wa),e+"")}var xa=flatRest;var Oa=xa(ya);var Sa=Oa;var ja=Qn(Object.getPrototypeOf,Object);var Ea=ja;var Ia="[object Object]";var Aa=Function.prototype,Ra=Object.prototype;var ka=Aa.toString;var Wa=Ra.hasOwnProperty;var Ca=ka.call(Object);function isPlainObject(e){if(!I(e)||E(e)!=Ia){return false}var r=Ea(e);if(r===null){return true}var t=Wa.call(r,"constructor")&&r.constructor;return typeof t=="function"&&t instanceof t&&ka.call(t)==Ca}var Ma=isPlainObject;var Ta="[object DOMException]",Ba="[object Error]";function isError(e){if(!I(e)){return false}var r=E(e);return r==Ba||r==Ta||typeof e.message=="string"&&typeof e.name=="string"&&!Ma(e)}var Pa=isError;var Da=Ft(function(e,r){try{return De(e,undefined,r)}catch(e){return Pa(e)?e:new Error(e)}});var La=Da;var $a="Expected a function";function before(e,r){var t;if(typeof r!="function"){throw new TypeError($a)}e=V(e);return function(){if(--e>0){t=r.apply(this,arguments)}if(e<=1){r=undefined}return t}}var za=before;var Na=1,Fa=32;var Ua=Ft(function(e,r,t){var n=Na;if(t.length){var i=nt(t,Jr(Ua));n|=Fa}return Wt(e,n,r,t,i)});Ua.placeholder={};var qa=Ua;var Ga=xa(function(e,r){jr(r,function(r){r=da(r);Tt(e,r,qa(e[r],e))});return e});var Ka=Ga;var Ha=1,Za=2,Ya=32;var Ja=Ft(function(e,r,t){var n=Ha|Za;if(t.length){var i=nt(t,Jr(Ja));n|=Ya}return Wt(r,n,e,t,i)});Ja.placeholder={};var Xa=Ja;function baseSlice(e,r,t){var n=-1,i=e.length;if(r<0){r=-r>i?0:i+r}t=t>i?i:t;if(t<0){t+=i}i=r>t?0:t-r>>>0;r>>>=0;var a=Array(i);while(++n=n?e:Qa(e,r,t)}var Va=castSlice;var eo="\\ud800-\\udfff",ro="\\u0300-\\u036f",to="\\ufe20-\\ufe2f",no="\\u20d0-\\u20ff",io=ro+to+no,ao="\\ufe0e\\ufe0f";var oo="\\u200d";var uo=RegExp("["+oo+eo+io+ao+"]");function hasUnicode(e){return uo.test(e)}var fo=hasUnicode;function asciiToArray(e){return e.split("")}var so=asciiToArray;var co="\\ud800-\\udfff",lo="\\u0300-\\u036f",vo="\\ufe20-\\ufe2f",po="\\u20d0-\\u20ff",ho=lo+vo+po,yo="\\ufe0e\\ufe0f";var go="["+co+"]",bo="["+ho+"]",_o="\\ud83c[\\udffb-\\udfff]",mo="(?:"+bo+"|"+_o+")",wo="[^"+co+"]",xo="(?:\\ud83c[\\udde6-\\uddff]){2}",Oo="[\\ud800-\\udbff][\\udc00-\\udfff]",So="\\u200d";var jo=mo+"?",Eo="["+yo+"]?",Io="(?:"+So+"(?:"+[wo,xo,Oo].join("|")+")"+Eo+jo+")*",Ao=Eo+jo+Io,Ro="(?:"+[wo+bo+"?",bo,xo,Oo,go].join("|")+")";var ko=RegExp(_o+"(?="+_o+")|"+Ro+Ao,"g");function unicodeToArray(e){return e.match(ko)||[]}var Wo=unicodeToArray;function stringToArray(e){return fo(e)?Wo(e):so(e)}var Co=stringToArray;function createCaseFirst(e){return function(r){r=ca(r);var t=fo(r)?Co(r):undefined;var n=t?t[0]:r.charAt(0);var i=t?Va(t,1).join(""):r.slice(1);return n[e]()+i}}var Mo=createCaseFirst;var To=Mo("toUpperCase");var Bo=To;function capitalize(e){return Bo(ca(e).toLowerCase())}var Po=capitalize;function arrayReduce(e,r,t,n){var i=-1,a=e==null?0:e.length;if(n&&a){t=e[++i]}while(++i=r?e:r}}return e}var nf=baseClamp;function clamp(e,r,t){if(t===undefined){t=r;r=undefined}if(t!==undefined){t=Y(t);t=t===t?t:0}if(r!==undefined){r=Y(r);r=r===r?r:0}return nf(Y(e),r,t)}var af=clamp;function stackClear(){this.__data__=new Gi;this.size=0}var of=stackClear;function stackDelete(e){var r=this.__data__,t=r["delete"](e);this.size=r.size;return t}var uf=stackDelete;function stackGet(e){return this.__data__.get(e)}var ff=stackGet;function stackHas(e){return this.__data__.has(e)}var sf=stackHas;var cf=200;function stackSet(e,r){var t=this.__data__;if(t instanceof Gi){var n=t.__data__;if(!Hi||n.lengthu)){return false}var s=a.get(e);if(s&&a.get(r)){return s==r}var c=-1,l=true,v=t&Fc?new Lc:undefined;a.set(e,r);a.set(r,e);while(++c=r||t<0||l&&n>=a}function timerExpired(){var e=cv();if(shouldInvoke(e)){return trailingEdge(e)}u=setTimeout(timerExpired,remainingWait(e))}function trailingEdge(e){u=undefined;if(v&&n){return invokeFunc(e)}n=i=undefined;return o}function cancel(){if(u!==undefined){clearTimeout(u)}s=0;n=f=i=u=undefined}function flush(){return u===undefined?o:trailingEdge(cv())}function debounced(){var e=cv(),t=shouldInvoke(e);n=arguments;i=this;f=e;if(t){if(u===undefined){return leadingEdge(f)}if(l){clearTimeout(u);u=setTimeout(timerExpired,r);return invokeFunc(f)}}if(u===undefined){u=setTimeout(timerExpired,r)}return o}debounced.cancel=cancel;debounced.flush=flush;return debounced}var pv=debounce;function defaultTo(e,r){return e==null||e!==e?r:e}var hv=defaultTo;var yv=Object.prototype;var gv=yv.hasOwnProperty;var bv=Ft(function(e,r){e=Object(e);var t=-1;var n=r.length;var i=n>2?r[2]:undefined;if(i&&Kt(r[0],r[1],i)){n=1}while(++t=Lv){a=zc;o=false;r=new Lc(r)}e:while(++i=0&&e.slice(t,i)==r}var sd=endsWith;function baseToPairs(e,r){return C(r,function(r){return[r,e[r]]})}var cd=baseToPairs;function setToPairs(e){var r=-1,t=Array(e.size);e.forEach(function(e){t[++r]=[e,e]});return t}var ld=setToPairs;var vd="[object Map]",dd="[object Set]";function createToPairs(e){return function(r){var t=es(r);if(t==vd){return qc(r)}if(t==dd){return ld(r)}return cd(r,e(r))}}var pd=createToPairs;var hd=pd(ii);var yd=hd;var gd=pd(di);var bd=gd;var _d={"&":"&","<":"<",">":">",'"':""","'":"'"};var md=Lo(_d);var wd=md;var xd=/[&<>"']/g,Od=RegExp(xd.source);function escape_escape(e){e=ca(e);return e&&Od.test(e)?e.replace(xd,wd):e}var Sd=escape_escape;var jd=/[\\^$.*+?()[\]{}|]/g,Ed=RegExp(jd.source);function escapeRegExp(e){e=ca(e);return e&&Ed.test(e)?e.replace(jd,"\\$&"):e}var Id=escapeRegExp;function arrayEvery(e,r){var t=-1,n=e==null?0:e.length;while(++ti?0:i+t}n=n===undefined||n>i?i:V(n);if(n<0){n+=i}n=t>n?0:Cd(n);while(t-1?i[a?r[o]:o]:undefined}}var Dd=createFind;var Ld=Math.max;function findIndex(e,r,t){var n=e==null?0:e.length;if(!n){return-1}var i=t==null?0:V(t);if(i<0){i=Ld(n+i,0)}return Er(e,Pl(r,3),i)}var $d=findIndex;var zd=Dd($d);var Nd=zd;function baseFindKey(e,r,t){var n;t(e,function(e,t,i){if(r(e,t,i)){n=t;return false}});return n}var Fd=baseFindKey;function findKey(e,r){return Fd(e,Pl(r,3),Zl)}var Ud=findKey;var qd=Math.max,Gd=Math.min;function findLastIndex(e,r,t){var n=e==null?0:e.length;if(!n){return-1}var i=n-1;if(t!==undefined){i=V(t);i=t<0?qd(n+i,0):Gd(i,n-1)}return Er(e,Pl(r,3),i,true)}var Kd=findLastIndex;var Hd=Dd(Kd);var Zd=Hd;function findLastKey(e,r){return Fd(e,Pl(r,3),ad)}var Yd=findLastKey;function head(e){return e&&e.length?e[0]:undefined}var Jd=head;function baseMap(e,r){var t=-1,n=Gt(e)?Array(e.length):[];Xl(e,function(e,i,a){n[++t]=r(e,i,a)});return n}var Xd=baseMap;function map_map(e,r){var t=T(e)?C:Xd;return t(e,Pl(r,3))}var Qd=map_map;function flatMap(e,r){return ma(Qd(e,r),1)}var Vd=flatMap;var ep=1/0;function flatMapDeep(e,r){return ma(Qd(e,r),ep)}var rp=flatMapDeep;function flatMapDepth(e,r,t){t=t===undefined?1:V(t);return ma(Qd(e,r),t)}var tp=flatMapDepth;var np=1/0;function flattenDeep(e){var r=e==null?0:e.length;return r?ma(e,np):[]}var ip=flattenDeep;function flattenDepth(e,r){var t=e==null?0:e.length;if(!t){return[]}r=r===undefined?1:V(r);return ma(e,r)}var ap=flattenDepth;var op=512;function flip(e){return Wt(e,op)}var up=flip;var fp=Ju("floor");var sp=fp;var cp="Expected a function";var lp=8,vp=32,dp=128,pp=256;function createFlow(e){return xa(function(r){var t=r.length,n=t,i=er.prototype.thru;if(e){r.reverse()}while(n--){var a=r[n];if(typeof a!="function"){throw new TypeError(cp)}if(i&&!o&&Ve(a)=="wrapper"){var o=new er([],true)}}n=o?n:t;while(++nr}var Cp=baseGt;function createRelationalOperation(e){return function(r,t){if(!(typeof r=="string"&&typeof t=="string")){r=Y(r);t=Y(t)}return e(r,t)}}var Mp=createRelationalOperation;var Tp=Mp(Cp);var Bp=Tp;var Pp=Mp(function(e,r){return e>=r});var Dp=Pp;var Lp=Object.prototype;var $p=Lp.hasOwnProperty;function baseHas(e,r){return e!=null&&$p.call(e,r)}var zp=baseHas;function has(e,r){return e!=null&&Al(e,r,zp)}var Np=has;var Fp=Math.max,Up=Math.min;function baseInRange(e,r,t){return e>=Up(r,t)&&e-1:!!i&&Rr(e,r,t)>-1}var Xp=includes_includes;var Qp=Math.max;function indexOf_indexOf(e,r,t){var n=e==null?0:e.length;if(!n){return-1}var i=t==null?0:V(t);if(i<0){i=Qp(n+i,0)}return Rr(e,r,i)}var Vp=indexOf_indexOf;function initial(e){var r=e==null?0:e.length;return r?Qa(e,0,-1):[]}var eh=initial;var rh=Math.min;function baseIntersection(e,r,t){var n=t?Dv:kr,i=e[0].length,a=e.length,o=a,u=Array(a),f=Infinity,s=[];while(o--){var c=e[o];if(o&&r){c=C(c,$n(r))}f=rh(c.length,f);u[o]=!t&&(r||i>=120&&c.length>=120)?new Lc(o&&c):undefined}c=e[0];var l=-1,v=u[0];e:while(++l=-vy&&e<=vy}var dy=isSafeInteger;function isUndefined(e){return e===undefined}var py=isUndefined;var hy="[object WeakMap]";function isWeakMap(e){return I(e)&&es(e)==hy}var yy=isWeakMap;var gy="[object WeakSet]";function isWeakSet(e){return I(e)&&E(e)==gy}var by=isWeakSet;var _y=1;function iteratee_iteratee(e){return Pl(typeof e=="function"?e:wc(e,_y))}var my=iteratee_iteratee;var wy=Array.prototype;var xy=wy.join;function join(e,r){return e==null?"":xy.call(e,r)}var Oy=join;var Sy=qu(function(e,r,t){return e+(t?"-":"")+r.toLowerCase()});var jy=Sy;var Ey=Vl(function(e,r,t){Tt(e,t,r)});var Iy=Ey;function strictLastIndexOf(e,r,t){var n=t+1;while(n--){if(e[n]===r){return n}}return n}var Ay=strictLastIndexOf;var Ry=Math.max,ky=Math.min;function lastIndexOf(e,r,t){var n=e==null?0:e.length;if(!n){return-1}var i=n;if(t!==undefined){i=V(t);i=i<0?Ry(n+i,0):ky(i,n-1)}return r===r?Ay(e,r,i):Er(e,Ir,i,true)}var Wy=lastIndexOf;var Cy=qu(function(e,r,t){return e+(t?" ":"")+r.toLowerCase()});var My=Cy;var Ty=Mo("toLowerCase");var By=Ty;function baseLt(e,r){return e=this.__values__.length,r=e?undefined:this.__values__[this.__index__++];return{done:e,value:r}}var _g=wrapperNext;function baseNth(e,r){var t=e.length;if(!t){return}r+=r<0?t:0;return Vr(r,t)?e[r]:undefined}var mg=baseNth;function nth(e,r){return e&&e.length?mg(e,V(r)):undefined}var wg=nth;function nthArg(e){e=V(e);return Ft(function(r){return mg(r,e)})}var xg=nthArg;function baseUnset(e,r){r=la(r,e);e=wh(e,r);return e==null||delete e[da(Fv(r))]}var Og=baseUnset;function customOmitClone(e){return Ma(e)?undefined:e}var Sg=customOmitClone;var jg=1,Eg=2,Ig=4;var Ag=xa(function(e,r){var t={};if(e==null){return t}var n=false;r=C(r,function(r){r=la(r,e);n||(n=r.length>1);return r});$t(e,Bf(e),t);if(n){t=wc(t,jg|Eg|Ig,Sg)}var i=r.length;while(i--){Og(t,r[i])}return t});var Rg=Ag;function baseSet(e,r,t,n){if(!F(e)){return e}r=la(r,e);var i=-1,a=r.length,o=a-1,u=e;while(u!=null&&++ir||a&&o&&f&&!u&&!s||n&&o&&f||!t&&f||!i){return 1}if(!n&&!a&&!s&&e=u){return f}var s=t[n];return f*(s=="desc"?-1:1)}}return e.index-r.index}var Dg=compareMultiple;function baseOrderBy(e,r,t){var n=-1;r=C(r.length?r:[te],$n(Pl));var i=Xd(e,function(e,t,i){var a=C(r,function(r){return r(e)});return{criteria:a,index:++n,value:e}});return Bg(i,function(e,r){return Dg(e,r,t)})}var Lg=baseOrderBy;function orderBy(e,r,t,n){if(e==null){return[]}if(!T(r)){r=r==null?[]:[r]}t=n?undefined:t;if(!T(t)){t=t==null?[]:[t]}return Lg(e,r,t)}var $g=orderBy;function createOver(e){return xa(function(r){r=C(r,$n(Pl));return Ft(function(t){var n=this;return e(r,function(e){return De(e,n,t)})})})}var zg=createOver;var Ng=zg(C);var Fg=Ng;var Ug=Ft;var qg=Ug;var Gg=Math.min;var Kg=qg(function(e,r){r=r.length==1&&T(r[0])?C(r[0],$n(Pl)):C(ma(r,1),$n(Pl));var t=r.length;return Ft(function(n){var i=-1,a=Gg(n.length,t);while(++iQg){return t}do{if(r%2){t+=e}r=Vg(r/2);if(r){e+=e}}while(r);return t}var eb=baseRepeat;var rb=Ml("length");var tb=rb;var nb="\\ud800-\\udfff",ib="\\u0300-\\u036f",ab="\\ufe20-\\ufe2f",ob="\\u20d0-\\u20ff",ub=ib+ab+ob,fb="\\ufe0e\\ufe0f";var sb="["+nb+"]",cb="["+ub+"]",lb="\\ud83c[\\udffb-\\udfff]",vb="(?:"+cb+"|"+lb+")",db="[^"+nb+"]",pb="(?:\\ud83c[\\udde6-\\uddff]){2}",hb="[\\ud800-\\udbff][\\udc00-\\udfff]",yb="\\u200d";var gb=vb+"?",bb="["+fb+"]?",_b="(?:"+yb+"(?:"+[db,pb,hb].join("|")+")"+bb+gb+")*",mb=bb+gb+_b,wb="(?:"+[db+cb+"?",cb,pb,hb,sb].join("|")+")";var xb=RegExp(lb+"(?="+lb+")|"+wb+mb,"g");function unicodeSize(e){var r=xb.lastIndex=0;while(xb.test(e)){++r}return r}var Ob=unicodeSize;function stringSize(e){return fo(e)?Ob(e):tb(e)}var Sb=stringSize;var jb=Math.ceil;function createPadding(e,r){r=r===undefined?" ":L(r);var t=r.length;if(t<2){return t?eb(r,e):r}var n=eb(r,jb(e/Sb(r)));return fo(r)?Va(Co(n),0,e).join(""):n.slice(0,e)}var Eb=createPadding;var Ib=Math.ceil,Ab=Math.floor;function pad(e,r,t){e=ca(e);r=V(r);var n=r?Sb(e):0;if(!r||n>=r){return e}var i=(r-n)/2;return Eb(Ab(i),t)+e+Eb(Ib(i),t)}var Rb=pad;function padEnd(e,r,t){e=ca(e);r=V(r);var n=r?Sb(e):0;return r&&n-1){if(u!==e){Jb.call(u,f,1)}Jb.call(e,f,1)}}return e}var Xb=basePullAll;function pullAll(e,r){return e&&e.length&&r&&r.length?Xb(e,r):e}var Qb=pullAll;var Vb=Ft(Qb);var e_=Vb;function pullAllBy(e,r,t){return e&&e.length&&r&&r.length?Xb(e,r,Pl(t,2)):e}var r_=pullAllBy;function pullAllWith(e,r,t){return e&&e.length&&r&&r.length?Xb(e,r,undefined,t):e}var t_=pullAllWith;var n_=Array.prototype;var i_=n_.splice;function basePullAt(e,r){var t=e?r.length:0,n=t-1;while(t--){var i=r[t];if(t==n||i!==a){var a=i;if(Vr(i)){i_.call(e,i,1)}else{Og(e,i)}}}return e}var a_=basePullAt;var o_=xa(function(e,r){var t=e==null?0:e.length,n=ya(e,r);a_(e,C(r,function(e){return Vr(e,t)?+e:e}).sort(Pg));return n});var u_=o_;var f_=Math.floor,s_=Math.random;function baseRandom(e,r){return e+f_(s_()*(r-e+1))}var c_=baseRandom;var l_=parseFloat;var v_=Math.min,d_=Math.random;function random(e,r,t){if(t&&typeof t!="boolean"&&Kt(e,r,t)){r=t=undefined}if(t===undefined){if(typeof r=="boolean"){t=r;r=undefined}else if(typeof e=="boolean"){t=e;e=undefined}}if(e===undefined&&r===undefined){e=0;r=1}else{e=Q(e);if(r===undefined){r=e;e=0}else{r=Q(r)}}if(e>r){var n=e;e=r;r=n}if(t||e%1||r%1){var i=d_();return v_(e+i*(r-e+l_("1e-"+((i+"").length-1))),r)}return c_(e,r)}var p_=random;var h_=Math.ceil,y_=Math.max;function baseRange(e,r,t,n){var i=-1,a=y_(h_((r-e)/(t||1)),0),o=Array(a);while(a--){o[n?a:++i]=e;e+=t}return o}var g_=baseRange;function createRange(e){return function(r,t,n){if(n&&typeof n!="number"&&Kt(r,t,n)){t=n=undefined}r=Q(r);if(t===undefined){t=r;r=0}else{t=Q(t)}n=n===undefined?r1&&Kt(e,r[0],r[1])){r=[]}else if(t>2&&Kt(r[0],r[1],r[2])){r=[r[0]]}return Lg(e,ma(r,1),[])});var sm=fm;var cm=4294967295,lm=cm-1;var vm=Math.floor,dm=Math.min;function baseSortedIndexBy(e,r,t,n){r=t(r);var i=0,a=e==null?0:e.length,o=r!==r,u=r===null,f=R(r),s=r===undefined;while(i>>1;function baseSortedIndex(e,r,t){var n=0,i=e==null?n:e.length;if(typeof r=="number"&&r===r&&i<=ym){while(n>>1,o=e[a];if(o!==null&&!R(o)&&(t?o<=r:o>>0;if(!t){return[]}e=ca(e);if(e&&(typeof r=="string"||r!=null&&!ly(r))){r=L(r);if(!r&&fo(e)){return Va(Co(e),0,t)}}return e.split(r,t)}var Am=split;var Rm="Expected a function";var km=Math.max;function spread(e,r){if(typeof e!="function"){throw new TypeError(Rm)}r=r==null?0:km(V(r),0);return Ft(function(t){var n=t[r],i=Va(t,0,r);if(n){ga(i,n)}return De(e,this,i)})}var Wm=spread;var Cm=qu(function(e,r,t){return e+(t?" ":"")+Bo(r)});var Mm=Cm;function startsWith(e,r,t){e=ca(e);t=t==null?0:nf(V(t),0,e.length);r=L(r);return e.slice(t,t+r.length)==r}var Tm=startsWith;function stubObject(){return{}}var Bm=stubObject;function stubString(){return""}var Pm=stubString;function stubTrue(){return true}var Dm=stubTrue;var Lm=$(function(e,r){return e-r},0);var $m=Lm;function sum(e){return e&&e.length?Jy(e,te):0}var zm=sum;function sumBy(e,r){return e&&e.length?Jy(e,Pl(r,2)):0}var Nm=sumBy;function tail(e){var r=e==null?0:e.length;return r?Qa(e,1,r):[]}var Fm=tail;function take(e,r,t){if(!(e&&e.length)){return[]}r=t||r===undefined?1:V(r);return Qa(e,0,r<0?0:r)}var Um=take;function takeRight(e,r,t){var n=e==null?0:e.length;if(!n){return[]}r=t||r===undefined?1:V(r);r=n-r;return Qa(e,r<0?0:r,n)}var qm=takeRight;function takeRightWhile(e,r){return e&&e.length?Xv(e,Pl(r,3),false,true):[]}var Gm=takeRightWhile;function takeWhile(e,r){return e&&e.length?Xv(e,Pl(r,3)):[]}var Km=takeWhile;function tap(e,r){r(e);return e}var Hm=tap;var Zm=Object.prototype;var Ym=Zm.hasOwnProperty;function customDefaultsAssignIn(e,r,t,n){if(e===undefined||Bt(e,Zm[t])&&!Ym.call(n,t)){return r}return e}var Jm=customDefaultsAssignIn;var Xm={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"};function escapeStringChar(e){return"\\"+Xm[e]}var Qm=escapeStringChar;var Vm=/<%=([\s\S]+?)%>/g;var ew=Vm;var rw=/<%-([\s\S]+?)%>/g;var tw=rw;var nw=/<%([\s\S]+?)%>/g;var iw=nw;var aw={escape:tw,evaluate:iw,interpolate:ew,variable:"",imports:{_:{escape:Sd}}};var ow=aw;var uw=/\b__p \+= '';/g,fw=/\b(__p \+=) '' \+/g,sw=/(__e\(.*?\)|\b__t\)) \+\n'';/g;var cw=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g;var lw=/($^)/;var vw=/['\n\r\u2028\u2029\\]/g;var dw=Object.prototype;var pw=dw.hasOwnProperty;function template(e,r,t){var n=ow.imports._.templateSettings||ow;if(t&&Kt(e,r,t)){r=undefined}e=ca(e);r=gi({},r,n,Jm);var i=gi({},r.imports,n.imports,Jm),a=ii(i),o=Zp(i,a);var u,f,s=0,c=r.interpolate||lw,l="__p += '";var v=RegExp((r.escape||lw).source+"|"+c.source+"|"+(c===ew?cw:lw).source+"|"+(r.evaluate||lw).source+"|$","g");var d=pw.call(r,"sourceURL")?"//# sourceURL="+(r.sourceURL+"").replace(/[\r\n]/g," ")+"\n":"";e.replace(v,function(r,t,n,i,a,o){n||(n=i);l+=e.slice(s,o).replace(vw,Qm);if(t){u=true;l+="' +\n__e("+t+") +\n'"}if(a){f=true;l+="';\n"+a+";\n__p += '"}if(n){l+="' +\n((__t = ("+n+")) == null ? '' : __t) +\n'"}s=o+r.length;return r});l+="';\n";var p=pw.call(r,"variable")&&r.variable;if(!p){l="with (obj) {\n"+l+"\n}\n"}l=(f?l.replace(uw,""):l).replace(fw,"$1").replace(sw,"$1;");l="function("+(p||"obj")+") {\n"+(p?"":"obj || (obj = {});\n")+"var __t, __p = ''"+(u?", __e = _.escape":"")+(f?", __j = Array.prototype.join;\n"+"function print() { __p += __j.call(arguments, '') }\n":";\n")+l+"return __p\n}";var h=La(function(){return Function(a,d+"return "+l).apply(undefined,o)});h.source=l;if(Pa(h)){throw h}return h}var hw=template;var yw="Expected a function";function throttle(e,r,t){var n=true,i=true;if(typeof e!="function"){throw new TypeError(yw)}if(F(t)){n="leading"in t?!!t.leading:n;i="trailing"in t?!!t.trailing:i}return pv(e,r,{leading:n,maxWait:r,trailing:i})}var gw=throttle;function thru(e,r){return r(e)}var bw=thru;var _w=9007199254740991;var mw=4294967295;var ww=Math.min;function times(e,r){e=V(e);if(e<1||e>_w){return[]}var t=mw,n=ww(e,mw);r=ed(r);e-=mw;var i=Jt(n,r);while(++t-1){}return t}var Cw=charsEndIndex;function charsStartIndex(e,r){var t=-1,n=e.length;while(++t-1){}return t}var Mw=charsStartIndex;var Tw=/^\s+|\s+$/g;function trim(e,r,t){e=ca(e);if(e&&(t||r===undefined)){return e.replace(Tw,"")}if(!e||!(r=L(r))){return e}var n=Co(e),i=Co(r),a=Mw(n,i),o=Cw(n,i)+1;return Va(n,a,o).join("")}var Bw=trim;var Pw=/\s+$/;function trimEnd(e,r,t){e=ca(e);if(e&&(t||r===undefined)){return e.replace(Pw,"")}if(!e||!(r=L(r))){return e}var n=Co(e),i=Cw(n,Co(r))+1;return Va(n,0,i).join("")}var Dw=trimEnd;var Lw=/^\s+/;function trimStart(e,r,t){e=ca(e);if(e&&(t||r===undefined)){return e.replace(Lw,"")}if(!e||!(r=L(r))){return e}var n=Co(e),i=Mw(n,Co(r));return Va(n,i).join("")}var $w=trimStart;var zw=30,Nw="...";var Fw=/\w*$/;function truncate(e,r){var t=zw,n=Nw;if(F(r)){var i="separator"in r?r.separator:i;t="length"in r?V(r.length):t;n="omission"in r?L(r.omission):n}e=ca(e);var a=e.length;if(fo(e)){var o=Co(e);a=o.length}if(t>=a){return e}var u=t-Sb(n);if(u<1){return n}var f=o?Va(o,0,u).join(""):e.slice(0,u);if(i===undefined){return f+n}if(o){u+=f.length-u}if(ly(i)){if(e.slice(u).search(i)){var s,c=f;if(!i.global){i=RegExp(i.source,ca(Fw.exec(i))+"g")}i.lastIndex=0;while(s=i.exec(c)){var l=s.index}f=f.slice(0,l===undefined?u:l)}}else if(e.indexOf(L(i),u)!=u){var v=f.lastIndexOf(i);if(v>-1){f=f.slice(0,v)}}return f+n}var Uw=truncate;function unary(e){return Mt(e,1)}var qw=unary;var Gw={"&":"&","<":"<",">":">",""":'"',"'":"'"};var Kw=Lo(Gw);var Hw=Kw;var Zw=/&(?:amp|lt|gt|quot|#39);/g,Yw=RegExp(Zw.source);function unescape_unescape(e){e=ca(e);return e&&Yw.test(e)?e.replace(Zw,Hw):e}var Jw=unescape_unescape;var Xw=1/0;var Qw=!(Nf&&1/Gc(new Nf([,-0]))[1]==Xw)?Ke:function(e){return new Nf(e)};var Vw=Qw;var ex=200;function baseUniq(e,r,t){var n=-1,i=kr,a=e.length,o=true,u=[],f=u;if(t){o=false;i=Dv}else if(a>=ex){var s=r?null:Vw(e);if(s){return Gc(s)}o=false;i=zc;f=new Lc}else{f=r?[]:u}e:while(++n1||this.__actions__.length||!(n instanceof Ge)||!Vr(t)){return this.thru(i)}n=n.slice(t,+t+(r?1:0));n.__actions__.push({func:bw,args:[i],thisArg:undefined});return new er(n,this.__chain__).thru(function(e){if(r&&!e.length){e.push(undefined)}return e})});var Ix=Ex;function wrapperChain(){return Vu(this)}var Ax=wrapperChain;function wrapperReverse(){var e=this.__wrapped__;if(e instanceof Ge){var r=e;if(this.__actions__.length){r=new Ge(this)}r=r.reverse();r.__actions__.push({func:bw,args:[$_],thisArg:undefined});return new er(r,this.__chain__)}return this.thru($_)}var Rx=wrapperReverse;function baseXor(e,r,t){var n=e.length;if(n<2){return n?rx(e[0]):[]}var i=-1,a=Array(n);while(++i1?e[r-1]:undefined;t=typeof t=="function"?(e.pop(),t):undefined;return yx(e,t)});var Ux=Fx;var qx={chunk:tf,compact:Mc,concat:Tc,difference:Nv,differenceBy:qv,differenceWith:Kv,drop:Yv,dropRight:Jv,dropRightWhile:Qv,dropWhile:Vv,fill:Td,findIndex:$d,findLastIndex:Kd,first:Jd,flatten:wa,flattenDeep:ip,flattenDepth:ap,fromPairs:Sp,head:Jd,indexOf:Vp,initial:eh,intersection:ah,intersectionBy:uh,intersectionWith:sh,join:Oy,last:Fv,lastIndexOf:Wy,nth:wg,pull:e_,pullAll:Qb,pullAllBy:r_,pullAllWith:t_,pullAt:u_,remove:W_,reverse:$_,slice:nm,sortedIndex:bm,sortedIndexBy:_m,sortedIndexOf:mm,sortedLastIndex:wm,sortedLastIndexBy:xm,sortedLastIndexOf:Om,sortedUniq:jm,sortedUniqBy:Em,tail:Fm,take:Um,takeRight:qm,takeRightWhile:Gm,takeWhile:Km,union:nx,unionBy:ax,unionWith:ux,uniq:fx,uniqBy:sx,uniqWith:cx,unzip:hx,unzipWith:yx,without:Sx,xor:Cx,xorBy:Tx,xorWith:Px,zip:Lx,zipObject:zx,zipObjectDeep:Nx,zipWith:Ux};var Gx={countBy:nv,each:rd,eachRight:fd,every:kd,filter:Pd,find:Nd,findLast:Zd,flatMap:Vd,flatMapDeep:rp,flatMapDepth:tp,forEach:rd,forEachRight:fd,groupBy:Wp,includes:Xp,invokeMap:Eh,keyBy:Iy,map:Qd,orderBy:$g,partition:Fb,reduce:I_,reduceRight:R_,reject:k_,sample:q_,sampleSize:Z_,shuffle:V_,size:tm,some:um,sortBy:sm};var Kx={now:cv};var Hx={after:re,ary:Mt,before:za,bind:qa,bindKey:Xa,curry:ov,curryRight:fv,debounce:pv,defer:Tv,delay:Pv,flip:up,memoize:na,negate:dg,once:Tg,overArgs:Hg,partial:Db,partialRight:zb,rearg:j_,rest:B_,spread:Wm,throttle:gw,unary:qw,wrap:jx};var Zx={castArray:Hu,clone:Oc,cloneDeep:Ec,cloneDeepWith:Rc,cloneWith:Wc,conformsTo:Ul,eq:Bt,gt:Bp,gte:Dp,isArguments:nn,isArray:T,isArrayBuffer:Wh,isArrayLike:Gt,isArrayLikeObject:wv,isBoolean:Mh,isBuffer:vn,isDate:Lh,isElement:$h,isEmpty:qh,isEqual:Gh,isEqualWith:Kh,isError:Pa,isFinite:Zh,isFunction:ue,isInteger:Yh,isLength:qt,isMap:$s,isMatch:Jh,isMatchWith:Xh,isNaN:ey,isNative:iy,isNil:ay,isNull:oy,isNumber:Vh,isObject:F,isObjectLike:I,isPlainObject:Ma,isRegExp:ly,isSafeInteger:dy,isSet:qs,isString:Hp,isSymbol:R,isTypedArray:Zn,isUndefined:py,isWeakMap:yy,isWeakSet:by,lt:Ly,lte:zy,toArray:bg,toFinite:Q,toInteger:V,toLength:Cd,toNumber:Y,toPlainObject:Ov,toSafeInteger:Rw,toString:ca};var Yx={add:N,ceil:Qu,divide:Zv,floor:sp,max:Zy,maxBy:Yy,mean:Vy,meanBy:eg,min:ug,minBy:fg,multiply:lg,round:N_,subtract:$m,sum:zm,sumBy:Nm};var Jx={clamp:af,inRange:Gp,random:p_};var Xx={assign:fi,assignIn:hi,assignInWith:gi,assignWith:_i,at:Sa,create:iv,defaults:_v,defaultsDeep:kv,entries:yd,entriesIn:bd,extend:hi,extendWith:gi,findKey:Ud,findLastKey:Yd,forIn:mp,forInRight:wp,forOwn:xp,forOwnRight:Op,functions:Ep,functionsIn:Ip,get:ha,has:Np,hasIn:Rl,invert:hh,invertBy:mh,invoke:Sh,keys:ii,keysIn:di,mapKeys:Ny,mapValues:Fy,merge:tg,mergeWith:Av,omit:Rg,omitBy:Mg,pick:Gb,pickBy:Cg,result:P_,set:Y_,setWith:J_,toPairs:yd,toPairsIn:bd,transform:Ww,unset:dx,update:bx,updateWith:_x,values:Yp,valuesIn:xx};var Qx={at:Ix,chain:Vu,commit:Cc,lodash:ar,next:_g,plant:Kb,reverse:Rx,tap:Hm,thru:bw,toIterator:Ow,toJSON:jw,value:jw,valueOf:jw,wrapperChain:Ax};var Vx={camelCase:Ku,capitalize:Po,deburr:Yo,endsWith:sd,escape:Sd,escapeRegExp:Id,kebabCase:jy,lowerCase:My,lowerFirst:By,pad:Rb,padEnd:kb,padStart:Wb,parseInt:Tb,repeat:C_,replace:M_,snakeCase:am,split:Am,startCase:Mm,startsWith:Tm,template:hw,templateSettings:ow,toLower:Ew,toUpper:kw,trim:Bw,trimEnd:Dw,trimStart:$w,truncate:Uw,unescape:Jw,upperCase:wx,upperFirst:Bo,words:Nu};var eO={attempt:La,bindAll:Ka,cond:Ll,conforms:Fl,constant:br,defaultTo:hv,flow:gp,flowRight:_p,identity:te,iteratee:my,matches:qy,matchesProperty:Ky,method:ig,methodOf:og,mixin:sg,noop:Ke,nthArg:xg,over:Fg,overEvery:Yg,overSome:Xg,property:Bl,propertyOf:Hb,range:m_,rangeRight:x_,stubArray:xf,stubFalse:an,stubObject:Bm,stubString:Pm,stubTrue:Dm,times:xw,toPath:Iw,uniqueId:vx};function lazyClone(){var e=new Ge(this.__wrapped__);e.__actions__=rr(this.__actions__);e.__dir__=this.__dir__;e.__filtered__=this.__filtered__;e.__iteratees__=rr(this.__iteratees__);e.__takeCount__=this.__takeCount__;e.__views__=rr(this.__views__);return e}var rO=lazyClone;function lazyReverse(){if(this.__filtered__){var e=new Ge(this);e.__dir__=-1;e.__filtered__=true}else{e=this.clone();e.__dir__*=-1}return e}var tO=lazyReverse;var nO=Math.max,iO=Math.min;function getView(e,r,t){var n=-1,i=t.length;while(++n0||r<0)){return new Ge(t)}if(e<0){t=t.takeRight(-e)}else if(e){t=t.drop(e)}if(r!==undefined){r=V(r);t=r<0?t.dropRight(-r):t.take(r-e)}return t};Ge.prototype.takeRightWhile=function(e){return this.reverse().takeWhile(e).reverse()};Ge.prototype.toArray=function(){return this.take(pO)};Zl(Ge.prototype,function(e,r){var t=/^(?:filter|find|map|reject)|While$/.test(r),n=/^(?:head|last)$/.test(r),i=ar[n?"take"+(r=="last"?"Right":""):r],a=n||/^find/.test(r);if(!i){return}ar.prototype[r]=function(){var r=this.__wrapped__,o=n?[1]:arguments,u=r instanceof Ge,f=o[0],s=u||T(r);var c=function(e){var r=i.apply(ar,ga([e],o));return n&&l?r[0]:r};if(s&&t&&typeof f=="function"&&f.length!=1){u=s=false}var l=this.__chain__,v=!!this.__actions__.length,d=a&&!l,p=u&&!v;if(!a&&s){r=p?r:new Ge(this);var h=e.apply(r,o);h.__actions__.push({func:bw,args:[c],thisArg:undefined});return new er(h,l)}if(d&&p){return e.apply(this,o)}h=this.thru(c);return d?n?h.value()[0]:h.value():h}});jr(["pop","push","shift","sort","splice","unshift"],function(e){var r=hO[e],t=/^(?:push|sort|unshift)$/.test(e)?"tap":"thru",n=/^(?:pop|shift)$/.test(e);ar.prototype[e]=function(){var e=arguments;if(n&&!this.__chain__){var i=this.value();return r.apply(T(i)?i:[],e)}return this[t](function(t){return r.apply(T(t)?t:[],e)})}});Zl(Ge.prototype,function(e,r){var t=ar[r];if(t){var n=t.name+"";if(!gO.call(Je,n)){Je[n]=[]}Je[n].push({name:r,func:t})}});Je[ct(undefined,lO).name]=[{name:"wrapper",func:undefined}];Ge.prototype.clone=rO;Ge.prototype.reverse=tO;Ge.prototype.value=sO;ar.prototype.at=Qx.at;ar.prototype.chain=Qx.wrapperChain;ar.prototype.commit=Qx.commit;ar.prototype.next=Qx.next;ar.prototype.plant=Qx.plant;ar.prototype.reverse=Qx.reverse;ar.prototype.toJSON=ar.prototype.valueOf=ar.prototype.value=Qx.value;ar.prototype.first=ar.prototype.head;if(bO){ar.prototype[bO]=Qx.toIterator}var xO=ar;class image_tag_ImageTag{static createForBase(e){const r="gableroux";const t="unity3d";return new this({repository:r,name:t,version:e})}static createForAction(e){const r="";const t="unity-action";return new this({repository:r,name:t,version:e})}constructor({repository:e="",name:r,version:t}){if(!image_tag_ImageTag.versionPattern.test(t)){throw new Error(`Invalid version "${t}".`)}Object.assign(this,{repository:e,name:r,version:t})}static get versionPattern(){return/^20\d{2}\.\d\.\w{3,4}|3$/}get tag(){return this.version}get image(){return $w(`${this.repository}/${this.name}`,"/")}toString(){return`${this.image}:${this.tag}`}}var OO=image_tag_ImageTag;class docker_Docker{static async build(e,r=false){const{path:t,dockerfile:n,baseImage:i}=e;const{version:a}=i;const o=OO.createForAction(a);const f=`docker build ${t} --file ${n} --build-arg IMAGE=${i} --tag ${o}`;await Object(u.exec)(f,null,{silent:r});return o}static async run(e,r,t=false){const{unityVersion:n,workspace:i,projectPath:a,artifactsPath:o}=r;const f=`docker run --workdir /github/workspace --rm --env UNITY_LICENSE --env UNITY_EMAIL --env UNITY_PASSWORD --env UNITY_SERIAL --env UNITY_VERSION=${n} --env PROJECT_PATH=${a} --env ARTIFACTS_PATH=${o}\n --env HOME=/github/home --env GITHUB_REF --env GITHUB_SHA --env GITHUB_REPOSITORY --env GITHUB_ACTOR --env GITHUB_WORKFLOW --env GITHUB_HEAD_REF --env GITHUB_BASE_REF --env GITHUB_EVENT_NAME --env GITHUB_WORKSPACE=/github/workspace --env GITHUB_ACTION --env GITHUB_EVENT_PATH --env RUNNER_OS --env RUNNER_TOOL_CACHE --env RUNNER_TEMP --env RUNNER_WORKSPACE --volume "/var/run/docker.sock":"/var/run/docker.sock" --volume "/home/runner/work/_temp/_github_home":"/github/home" --volume "/home/runner/work/_temp/_github_workflow":"/github/workflow" --volume "${i}":"/github/workspace" ${e}`;await Object(u.exec)(f,null,{silent:t})}}var SO=docker_Docker;class input_Input{static get testModes(){return["all","playmode","editmode"]}static isValidFolderName(e){const r=new RegExp(/^(\.|\.\/)?(\.?\w+\/?)*$/);return r.test(e)}static getFromUser(){const e=Object(n.getInput)("unityVersion")||"2019.2.11f1";const r=Object(n.getInput)("testMode")||"all";const t=Object(n.getInput)("testMode")||".";const i=Object(n.getInput)("testMode")||"artifacts";if(!Xp(this.testModes,r)){throw new Error(`Invalid testMode ${r}`)}if(!this.isValidFolderName(i)){throw new Error(`Invalid artifactsPath "${i}"`)}if(!this.isValidFolderName(t)){throw new Error(`Invalid projectPath "${t}"`)}const a=t.replace(/\/$/,"");const o=i.replace(/\/$/,"");return{unityVersion:e,projectPath:a,testMode:r,artifactsPath:o}}}var jO=input_Input;const EO=t(470);class Output{static async setArtifactsPath(e){await EO.setOutput("artifactsPath",e)}}var IO=Output;async function src_action(){o.checkCompatibility();const{dockerfile:e,workspace:r,actionFolder:t}=o;const{unityVersion:n,projectPath:i,artifactsPath:a}=jO.getFromUser();const u=OO.createForBase(n);const f=await SO.build({path:t,dockerfile:e,baseImage:u});await SO.run(f,{workspace:r,unityVersion:n,projectPath:i,artifactsPath:a});await IO.setArtifactsPath(a)}src_action().catch(e=>{Object(n.setFailed)(e.message)})},614:function(e){e.exports=require("events")},622:function(e){e.exports=require("path")},669:function(e){e.exports=require("util")},672:function(e,r,t){"use strict";var n=this&&this.__awaiter||function(e,r,t,n){function adopt(e){return e instanceof t?e:new t(function(r){r(e)})}return new(t||(t=Promise))(function(t,i){function fulfilled(e){try{step(n.next(e))}catch(e){i(e)}}function rejected(e){try{step(n["throw"](e))}catch(e){i(e)}}function step(e){e.done?t(e.value):adopt(e.value).then(fulfilled,rejected)}step((n=n.apply(e,r||[])).next())})};var i;Object.defineProperty(r,"__esModule",{value:true});const a=t(357);const o=t(747);const u=t(622);i=o.promises,r.chmod=i.chmod,r.copyFile=i.copyFile,r.lstat=i.lstat,r.mkdir=i.mkdir,r.readdir=i.readdir,r.readlink=i.readlink,r.rename=i.rename,r.rmdir=i.rmdir,r.stat=i.stat,r.symlink=i.symlink,r.unlink=i.unlink;r.IS_WINDOWS=process.platform==="win32";function exists(e){return n(this,void 0,void 0,function*(){try{yield r.stat(e)}catch(e){if(e.code==="ENOENT"){return false}throw e}return true})}r.exists=exists;function isDirectory(e,t=false){return n(this,void 0,void 0,function*(){const n=t?yield r.stat(e):yield r.lstat(e);return n.isDirectory()})}r.isDirectory=isDirectory;function isRooted(e){e=normalizeSeparators(e);if(!e){throw new Error('isRooted() parameter "p" cannot be empty')}if(r.IS_WINDOWS){return e.startsWith("\\")||/^[A-Z]:/i.test(e)}return e.startsWith("/")}r.isRooted=isRooted;function mkdirP(e,t=1e3,i=1){return n(this,void 0,void 0,function*(){a.ok(e,"a path argument must be provided");e=u.resolve(e);if(i>=t)return r.mkdir(e);try{yield r.mkdir(e);return}catch(n){switch(n.code){case"ENOENT":{yield mkdirP(u.dirname(e),t,i+1);yield r.mkdir(e);return}default:{let t;try{t=yield r.stat(e)}catch(e){throw n}if(!t.isDirectory())throw n}}}})}r.mkdirP=mkdirP;function tryGetExecutablePath(e,t){return n(this,void 0,void 0,function*(){let n=undefined;try{n=yield r.stat(e)}catch(r){if(r.code!=="ENOENT"){console.log(`Unexpected error attempting to determine if executable file exists '${e}': ${r}`)}}if(n&&n.isFile()){if(r.IS_WINDOWS){const r=u.extname(e).toUpperCase();if(t.some(e=>e.toUpperCase()===r)){return e}}else{if(isUnixExecutable(n)){return e}}}const i=e;for(const a of t){e=i+a;n=undefined;try{n=yield r.stat(e)}catch(r){if(r.code!=="ENOENT"){console.log(`Unexpected error attempting to determine if executable file exists '${e}': ${r}`)}}if(n&&n.isFile()){if(r.IS_WINDOWS){try{const t=u.dirname(e);const n=u.basename(e).toUpperCase();for(const i of yield r.readdir(t)){if(n===i.toUpperCase()){e=u.join(t,i);break}}}catch(r){console.log(`Unexpected error attempting to determine the actual case of the file '${e}': ${r}`)}return e}else{if(isUnixExecutable(n)){return e}}}}return""})}r.tryGetExecutablePath=tryGetExecutablePath;function normalizeSeparators(e){e=e||"";if(r.IS_WINDOWS){e=e.replace(/\//g,"\\");return e.replace(/\\\\+/g,"\\")}return e.replace(/\/\/+/g,"/")}function isUnixExecutable(e){return(e.mode&1)>0||(e.mode&8)>0&&e.gid===process.getgid()||(e.mode&64)>0&&e.uid===process.getuid()}},747:function(e){e.exports=require("fs")},986:function(e,r,t){"use strict";var n=this&&this.__awaiter||function(e,r,t,n){function adopt(e){return e instanceof t?e:new t(function(r){r(e)})}return new(t||(t=Promise))(function(t,i){function fulfilled(e){try{step(n.next(e))}catch(e){i(e)}}function rejected(e){try{step(n["throw"](e))}catch(e){i(e)}}function step(e){e.done?t(e.value):adopt(e.value).then(fulfilled,rejected)}step((n=n.apply(e,r||[])).next())})};Object.defineProperty(r,"__esModule",{value:true});const i=t(9);function exec(e,r,t){return n(this,void 0,void 0,function*(){const n=i.argStringToArray(e);if(n.length===0){throw new Error(`Parameter 'commandLine' cannot be null or empty.`)}const a=n[0];r=n.slice(1).concat(r||[]);const o=new i.ToolRunner(a,r,t);return o.exec()})}r.exec=exec}},function(e){"use strict";!function(){e.r=function(e){if(typeof Symbol!=="undefined"&&Symbol.toStringTag){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"})}Object.defineProperty(e,"__esModule",{value:true})}}();!function(){var r=Object.prototype.hasOwnProperty;e.d=function(e,t,n){if(!r.call(e,t)){Object.defineProperty(e,t,{enumerable:true,get:n})}}}();!function(){e.t=function(r,t){if(t&1)r=this(r);if(t&8)return r;if(t&4&&typeof r==="object"&&r&&r.__esModule)return r;var n=Object.create(null);e.r(n);Object.defineProperty(n,"default",{enumerable:true,value:r});if(t&2&&typeof r!="string")for(var i in r)e.d(n,i,function(e){return r[e]}.bind(null,i));return n}}();!function(){e.n=function(r){var t=r&&r.__esModule?function getDefault(){return r["default"]}:function getModuleExports(){return r};e.d(t,"a",t);return t}}();!function(){e.hmd=function(e){e=Object.create(e);if(!e.children)e.children=[];Object.defineProperty(e,"loaded",{enumerable:true,get:function(){return e.l}});Object.defineProperty(e,"id",{enumerable:true,get:function(){return e.i}});Object.defineProperty(e,"exports",{enumerable:true,set:function(){throw new Error("ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: "+e.id)}});return e}}()}); \ No newline at end of file diff --git a/action/steps/run_tests.sh b/action/steps/run_tests.sh index 5fe8e98..f572fa0 100644 --- a/action/steps/run_tests.sh +++ b/action/steps/run_tests.sh @@ -1,13 +1,16 @@ #!/usr/bin/env bash -# Set the license file path +# +# Set and display project path +# + UNITY_PROJECT_PATH=$GITHUB_WORKSPACE/$PROJECT_PATH echo "Using project path \"$UNITY_PROJECT_PATH\"." -# Set the artifacts path -if [ -z "$ARTIFACTS_PATH" ]; then - ARTIFACTS_PATH=artifacts -fi +# +# Set and display the artifacts path +# + echo "Using build path \"$ARTIFACTS_PATH\" to save test results." FULL_ARTIFACTS_PATH=$GITHUB_WORKSPACE/$ARTIFACTS_PATH diff --git a/src/model/input.js b/src/model/input.js index 262d5eb..0422569 100644 --- a/src/model/input.js +++ b/src/model/input.js @@ -6,6 +6,12 @@ class Input { return ['all', 'playmode', 'editmode']; } + static isValidFolderName(folderName) { + const validFolderName = new RegExp(/^(\.|\.\/)?(\.?\w+\/?)*$/); + + return validFolderName.test(folderName); + } + static getFromUser() { // Input variables specified in workflow using "with" prop. const unityVersion = getInput('unityVersion') || '2019.2.11f1'; @@ -18,6 +24,14 @@ class Input { throw new Error(`Invalid testMode ${testMode}`); } + if (!this.isValidFolderName(rawArtifactsPath)) { + throw new Error(`Invalid artifactsPath "${rawArtifactsPath}"`); + } + + if (!this.isValidFolderName(rawProjectPath)) { + throw new Error(`Invalid projectPath "${rawProjectPath}"`); + } + // Sanitise input const projectPath = rawProjectPath.replace(/\/$/, ''); const artifactsPath = rawArtifactsPath.replace(/\/$/, '');