package Ġorg . elixir _ lang . dist ill ery Ċ Ċ import Ġcom . intellij . execution . Executor Ċ import Ġcom . intellij . execution . External izable Path Ċ import Ġcom . intellij . execution . configuration . Environment Variables Component Ċ import Ġcom . intellij . execution . configurations . Configuration Factory Ċ import Ġcom . intellij . execution . configurations . General CommandLine Ċ import Ġcom . intellij . execution . configurations . Run Configuration Ċ import Ġcom . intellij . execution . configurations . Run Configuration With Sup pressed Default Debug Action Ċ import Ġcom . intellij . execution . runners . Execution Environment Ċ import Ġcom . intellij . execution . runners . Run Configuration With Sup pressed Default Run Action Ċ import Ġcom . intellij . openapi . options . Settings Editor Ċ import Ġcom . intellij . openapi . options . Settings Editor Group Ċ import Ġcom . intellij . openapi . project . Project Ċ import Ġcom . intellij . util . io . exists Ċ import Ġorg . elixir _ lang . Dist ill ery Ċ import Ġorg . elixir _ lang . debugger . Modules Ċ import Ġorg . elixir _ lang . debugger . configuration . Debug gable Ċ import Ġorg . elixir _ lang . debugger . settings . ste pping . Module Filter Ċ import Ġorg . elixir _ lang . dist ill ery . configuration . editor . Code Loading Mode Ċ import Ġorg . elixir _ lang . run .* Ċ import Ġorg . j dom . Element Ċ import Ġjava . io . File Ċ import Ġjava . nio . file . Path Ċ import Ġjava . nio . file . Paths Ċ Ċ class ĠConfiguration ( name : ĠString , Ġproject : ĠProject , Ġconfiguration Factory : ĠConfiguration Factory ) Ġ: ĊĠĠĠĠĠĠĠ Ġorg . elixir _ lang . run . Configuration ( name , Ġproject , Ġconfiguration Factory ), ĊĠĠĠĠĠĠĠ ĠDebug gable < Configuration >, ĊĠĠĠĠĠĠĠ ĠRun Configuration With Sup pressed Default Run Action , ĊĠĠĠĠĠĠĠ ĠRun Configuration With Sup pressed Default Debug Action Ġ{ ĊĠĠĠ Ġoverride Ġval Ġcookie : ĠString ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġvm Args Path ?. let (:: vm Args Path To Cookie ) ĊĊĠĠĠ Ġoverride Ġvar Ġinherit Application Module Filters : ĠBoolean Ġ= Ġtrue ĊĠĠĠ Ġoverride Ġvar Ġmodule Filter List : ĠMutable List < Module Filter > Ġ= Ġmutable ListOf () ĊĊĠĠĠ Ġoverride Ġval ĠnodeName : ĠString ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġvm Args Path ?. let (:: vm Args Path To NodeName ) ĊĊĠĠĠ Ġoverride Ġfun Ġdebug ged Configuration ( name : ĠString , Ġcookie : ĠString ): ĠConfiguration Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdebug ged Ġ= ĠConfiguration ( name , Ġproject , Ġfactory !! ) ĊĊĠĠĠĠĠĠĠ Ġdebug ged . working Directory Ġ= Ġworking Directory ĊĠĠĠĠĠĠĠ Ġdebug ged . is Pass Parent En vs Ġ= Ġis Pass Parent En vs ĊĊĠĠĠĠĠĠĠ Ġval Ġenv s : ĠMutable Map < String , ĠString > Ġ= Ġmutable Map Of () ĊĠĠĠĠĠĠĠ Ġenv s . put All ( this . envs ) ĊĠĠĠĠĠĠĠ Ġenv s . compute ( ER L _ OPTS ) Ġ{ Ġ_, Ġcurrent Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġer l ArgumentList = Ġ ĠlistOf NotNull ( current ) Ġ+ ĠModules . erl ArgumentList () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġer l ArgumentList . join ToString (" Ġ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ// Ġshows Ġa Ġfull Ġ` er lex ec ` Ġcall Ġdone Ġby ĊĠĠĠĠĠĠĠ Ġenv s [ VERBOSE ] Ġ= Ġ" true " ĊĠĠĠĠĠĠĠ Ġdebug ged . envs Ġ= Ġenv s ĊĊĠĠĠĠĠĠĠ Ġdebug ged . configuration Module . module Ġ= Ġconfiguration Module . module ĊĊĠĠĠĠĠĠĠ Ġ// Ġoptions Ġnot Ġstored Ġin Ġ` envs ` ĊĠĠĠĠĠĠĠ Ġdebug ged . w ants P TY Ġ= Ġwants P TY ĊĠĠĠĠĠĠĠ Ġdebug ged . release CLI URL Ġ= Ġrelease CLI URL ĊĠĠĠĠĠĠĠ Ġdebug ged . release CLI ArgumentList Ġ= Ġrelease CLI ArgumentList ĊĊĠĠĠĠĠĠĠ Ġreturn Ġdebug ged ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġwants P TY : ĠBoolean Ġ= Ġfalse ĊĠĠĠ Ġval Ġp ty ĊĠĠĠĠĠ Ġget () Ġ= Ġwants P TY Ġ|| Ġneeds P TY ĊĊĠĠĠ Ġvar Ġrelease CLI Path : ĠString ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= ĠExternal izable Path . local Path Value ( release CLI URL ) ĊĠĠĠĠĠĠĠ Ġset ( local Path ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrelease CLI URL Ġ= ĠExternal izable Path . url Value ( local Path ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Program Parameters (): ĠString ? Ġ= Ġrelease CLI Arguments ĊĊĠĠĠ Ġoverride Ġfun Ġset Program Parameters ( value : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġrelease CLI Arguments Ġ= Ġvalue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġrelease CLI ArgumentList : ĠMutable List < String > Ġ= Ġmutable ListOf () ĊĊĠĠĠ Ġvar Ġrelease CLI Arguments : ĠString ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġrelease CLI ArgumentList . to Arguments () ĊĠĠĠĠĠĠĠ Ġset ( arguments ) Ġ= Ġrelease CLI ArgumentList . from Arguments ( arguments ) ĊĊĠĠĠ Ġvar Ġer l Arguments : ĠString ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġ_ envs [ ER L _ OPTS ] ĊĠĠĠĠĠĠĠ Ġset ( erl Arguments ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( erl Arguments . isNull Or Blank ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ envs . remove ( ER L _ OPTS ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ envs [ ER L _ OPTS ] Ġ= Ġer l Arguments !! ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġextra Arguments : ĠString ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġ_ envs [ EXTRA _ OPTS ] ĊĠĠĠĠĠĠĠ Ġset ( extra Arguments ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( extra Arguments . isNull Or Blank ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ envs . remove ( EXTRA _ OPTS ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ envs [ EXTRA _ OPTS ] Ġ= Ġextra Arguments !! ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġcode Loading Mode : ĠCode Loading Mode ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġ_ envs [ CODE _ LOADING _ MODE ]?. let Ġ{ ĠCode Loading Mode . valueOf ( it . toUpperCase ()) Ġ} ĊĠĠĠĠĠĠĠ Ġset ( code Loading Mode ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( code Loading Mode Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ envs . remove ( CODE _ LOADING _ MODE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ envs [ CODE _ LOADING _ MODE ] Ġ= Ġcode Loading Mode . toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġlog Directory : ĠString ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġ_ envs [ RUN NER _ LOG _ DIR ] ĊĠĠĠĠĠĠĠ Ġset ( log Directory ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( log Directory . isNull Or Blank ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ envs . remove ( RUN NER _ LOG _ DIR ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ envs [ RUN NER _ LOG _ DIR ] Ġ= Ġlog Directory !! ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġreplace OS Vars : ĠBoolean ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġ_ envs [ REPLACE _ OS _ VARS ]?. to Boolean () Ġ?: ĠDEFAULT _ REPLACE _ OS _ VARS ĊĠĠĠĠĠĠĠ Ġset ( replace OS Vars ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( replace OS Vars Ġ!= ĠDEFAULT _ REPLACE _ OS _ VARS ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ envs [ REPLACE _ OS _ VARS ] Ġ= Ġreplace OS Vars . toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ envs . remove ( REPLACE _ OS _ VARS ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġsys ConfigPath : ĠString ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġ_ envs [ SYS _ CONFIG _ PATH ] ĊĠĠĠĠĠĠĠ Ġset ( sys ConfigPath ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( sys ConfigPath . isNull Or Blank ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ envs . remove ( SYS _ CONFIG _ PATH ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ envs [ SYS _ CONFIG _ PATH ] Ġ= Ġsys ConfigPath !! ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġrelease Config Directory : ĠString ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġ_ envs [ RELEASE _ CONFIG _ DIR ] ĊĠĠĠĠĠĠĠ Ġset ( release Config Directory ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( release Config Directory . isNull Or Blank ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ envs . remove ( RELEASE _ CONFIG _ DIR ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ envs [ RELEASE _ CONFIG _ DIR ] Ġ= Ġrelease Config Directory !! ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġpipe Directory : ĠString ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġ_ envs [ PIPE _ DIR ] ĊĠĠĠĠĠĠĠ Ġset ( pipe Directory ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( pipe Directory . isNull Or Blank ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ envs . remove ( PIPE _ DIR ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ envs [ PIPE _ DIR ] Ġ= Ġpipe Directory !! ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġcommand Line (): ĠGeneral CommandLine Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġworking Directory Ġ= Ġensure Working Directory () ĊĠĠĠĠĠĠĠ Ġval Ġcommand Line Ġ= ĠDist ill ery . command Line ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġp ty Ġ= Ġp ty , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġenvironment Ġ= Ġenv s , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġworking Directory Ġ= Ġworking Directory , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexe Path Ġ= Ġrelease CLI Path !! ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġcommand Line . add Parameters ( release CLI ArgumentList ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġcommand Line ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Configuration Editor (): ĠSettings Editor < out ĠRun Configuration > Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSettings Editor Group < Configuration >(). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . add Editor (" Configuration ", Ġorg . elixir _ lang . dist ill ery . configuration . Editor ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . add Editor (" Inter pre ted ĠModules ", Ġorg . elixir _ lang . debugger . configuration . inter pre ted _ modules . Editor < Configuration >()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetState ( executor : ĠExecutor , Ġenvironment : ĠExecution Environment ): ĠState Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠState ( environment , Ġthis ) ĊĊĠĠĠ Ġoverride Ġfun Ġread External ( element : ĠElement ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . read External ( element ) ĊĊĠĠĠĠĠĠĠ Ġrelease CLI URL Ġ= Ġelement . read External URL ( RELEASE _ EXECUT ABLE ) ĊĠĠĠĠĠĠĠ Ġwants P TY Ġ= Ġelement . read External W ants P TY ( RELEASE _ EXECUT ABLE ) ĊĠĠĠĠĠĠĠ Ġelement . read External ArgumentList ( RELEASE _ EXECUT ABLE , Ġrelease CLI ArgumentList ) ĊĊĠĠĠĠĠĠĠ Ġworking Directory URL Ġ= Ġelement . read External Working Directory () ĊĠĠĠĠĠĠĠ ĠEnvironment Variables Component . read External ( element , Ġenv s ) ĊĠĠĠĠĠĠĠ Ġelement . read External Module ( this ) ĊĠĠĠĠĠĠĠ Ġelement . read Module Filters ( module Filter List ) Ġ{ Ġinherit Application Module Filters Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . inherit Application Module Filters Ġ= Ġinherit Application Module Filters ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġwrite External ( element : ĠElement ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . write External ( element ) ĊĊĠĠĠĠĠĠĠ Ġelement . write External ArgumentList ( RELEASE _ EXECUT ABLE , Ġrelease CLI ArgumentList ) ĊĠĠĠĠĠĠĠ Ġelement . write External URL ( RELEASE _ EXECUT ABLE , Ġrelease CLI URL ) ĊĠĠĠĠĠĠĠ Ġelement . write External W ants P TY ( RELEASE _ EXECUT ABLE , Ġwants P TY ) ĊĊĠĠĠĠĠĠĠ Ġelement . write External Working Directory ( working Directory URL ) ĊĠĠĠĠĠĠĠ ĠEnvironment Variables Component . write External ( element , Ġenv s ) ĊĠĠĠĠĠĠĠ Ġelement . write External Module ( this ) ĊĠĠĠĠĠĠĠ Ġelement . write Module Filters ( module Filter List , Ġinherit Application Module Filters ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġneeds P TY ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ= Ġrelease CLI ArgumentList . needs P TY ĊĊĠĠĠ Ġprivate Ġvar Ġrelease CLI URL : ĠString ? Ġ= Ġnull ĊĊĠĠĠ Ġprivate Ġval Ġvm Args Path : ĠString ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġrelease CLI Path ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġreleases Path Ġ= ĠPaths . get ( it ). parent . parent . resolve (" releases ") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreleases Path ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. resolve (" start _ erl . data ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. to Group Value ( START _ ER L _ DATA _ REGEX , ĠSTART _ ER L _ DATA _ REGEX _ RELEASE _ INDEX ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . let Ġ{ Ġrelease Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvm Args Path Ġ= Ġreleases Path . resolve ( release ). resolve (" vm . args ") ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( vm Args Path . exists ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvm Args Path . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ċ } Ċ Ċ private Ġconst Ġval ĠCODE _ LOADING _ MODE Ġ= Ġ" CODE _ LOADING _ MODE " Ċ private Ġconst Ġval ĠE RL _ OPTS Ġ= Ġ" ER L _ OPTS " Ċ private Ġconst Ġval ĠEX TRA _ OPTS Ġ= Ġ" EXTRA _ OPTS " Ċ private Ġconst Ġval ĠNAME Ġ= Ġ" NAME " Ċ private Ġconst Ġval ĠPI PE _ DIR Ġ= Ġ" PIPE _ DIR " Ċ private Ġconst Ġval ĠRELEASE _ CONFIG _ DIR Ġ= Ġ" RELEASE _ CONFIG _ DIR " Ċ private Ġconst Ġval ĠRUN NER _ LOG _ DIR Ġ= Ġ" RUN NER _ LOG _ DIR " Ċ private Ġconst Ġval ĠSYS _ CONFIG _ PATH Ġ= Ġ" SYS _ CONFIG _ PATH " Ċ private Ġconst Ġval ĠVERBOSE Ġ= Ġ" VERBOSE " Ċ Ċ private Ġconst Ġval ĠREPLACE _ OS _ VARS Ġ= Ġ" REPLACE _ OS _ VARS " Ċ private Ġconst Ġval ĠDEFAULT _ REPLACE _ OS _ VARS Ġ= Ġfalse Ċ Ċ private Ġval ĠList < String >. needs P TY : ĠBoolean ĊĠĠĠ Ġget () Ġ= Ġfirst OrNull ()?. let Ġ{ Ġtask Ġ-> Ġtask Ġin ĠNE ED _ P TY _ TASK S Ġ} Ġ?: Ġfalse Ċ Ċ private Ġval ĠNE ED _ P TY _ TASK S Ġ= Ġset Of (" attach ", Ġ" console ", Ġ" console _ boot ", Ġ" console _ clean ", Ġ" remote _ console ") Ċ private Ġconst Ġval ĠRELEASE _ EXECUT ABLE Ġ= Ġ" release - executable " Ċ private Ġconst Ġval ĠW ANT S _ P TY Ġ= Ġ" w ants - pt y " Ċ Ċ private Ġval ĠSTART _ ER L _ DATA _ REGEX Ġ= ĠRegex (" ([^ Ġ] +) Ġ([ ^ Ġ] + )") Ċ private Ġconst Ġval ĠSTART _ ER L _ DATA _ REGEX _ RELEASE _ INDEX Ġ= Ġ 2 Ċ Ċ private Ġval ĠSET COOKIE _ REGEX Ġ= ĠRegex ("- set cookie Ġ([ ^ Ġ] + )") Ċ Ċ private Ġfun Ġvm Args Path To Cookie ( vm Args Path : ĠString ): ĠString ? Ġ= Ġpath To Group Value ( vm Args Path , ĠSET COOKIE _ REGEX , Ġ 1 ) Ċ Ċ private Ġval ĠNAME _ REGEX Ġ= ĠRegex ("- name Ġ([ ^ Ġ] + )") Ċ Ċ private Ġfun Ġvm Args Path To NodeName ( vm Args Path : ĠString ): ĠString ? Ġ= Ġpath To Group Value ( vm Args Path , ĠNAME _ REGEX , Ġ 1 ) Ċ Ċ private Ġfun ĠPath . to Group Value ( regex : ĠRegex , Ġgroup Index : ĠInt ): ĠString ? Ġ= Ġto File (). to Group Value ( regex , Ġgroup Index ) Ċ Ċ private Ġfun Ġpath To Group Value ( path : ĠString , Ġregex : ĠRegex , Ġgroup Index : ĠInt ): ĠString ? Ġ= ĊĠĠĠĠĠĠĠ ĠFile ( path ). to Group Value ( regex , Ġgroup Index ) Ċ Ċ private Ġfun ĠFile . to Group Value ( regex : ĠRegex , Ġgroup Index : ĠInt ): ĠString ? Ġ= ĊĠĠĠĠĠĠĠ Ġif Ġ( exists ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuffered Reader () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. line Sequence () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map NotNull Ġ{ Ġline Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġregex ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. match Ent ire ( line ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . let Ġ{ Ġit . group Values [ group Index ] Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. first OrNull () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠ Ġ} Ċ Ċ private Ġfun ĠElement . write External W ants P TY ( child Name : ĠString , Ġwants P TY : ĠBoolean ) Ġ= ĊĠĠĠĠĠĠĠ Ġensure Child ( child Name ). setAttribute ( W ANT S _ P TY , Ġwants P TY . toString ()) Ċ Ċ private Ġfun ĠElement . read External W ants P TY ( child Name : ĠString ): ĠBoolean Ġ= ĊĠĠĠĠĠĠĠ Ġget Child ( child Name )?. getAttribute Value ( W ANT S _ P TY )?. to Boolean () Ġ?: Ġfalse Ċ