diff --git a/-packages_dev/aplteam-APLTreeUtils2-1.1.1/APLTreeUtils2.aplc b/-packages_dev/aplteam-APLTreeUtils2-1.1.1/APLTreeUtils2.aplc
deleted file mode 100644
index dcc3cf4..0000000
--- a/-packages_dev/aplteam-APLTreeUtils2-1.1.1/APLTreeUtils2.aplc
+++ /dev/null
@@ -1,402 +0,0 @@
-:Class APLTreeUtils2
-⍝ This is the predecessor of the namespace `APLTreeUtils`.\\
-⍝ While `APLTreeUtils` was a namespace scipt designed to be included into pretty much every member of the
-⍝ APLTree library, `APLTreeUtils2` is a class with shared methods. You are supposed to call those methods.
-⍝ This has some major advantageous over the old approach:
-⍝ * It's possible to add new functins to `APLTreeUtils`. With the old approach there was always the possibility
-⍝ of a name clash, so adding new function was practically impossible.
-⍝ * The sequence of fixing does not matter (though with lazy fixing that should not be an issue anymore anyway,
-⍝ but at the time of writing it still is).
-⍝ * Over the years we have seen rare `⎕IO` and `⎕ML` issues with `:Include`. We just avoid the possibility now.\\
-⍝ For a list with the precise differences between `APLTreeUtils` and `APLTreeUtils2` see the project ReadMe on
-⍝ GitHub. Note that there are many. Most importantly, `APLTreeUtils2` requires Dyalog 18.0.
-⍝ Kai Jaeger - APL Team Ltd.\\
-⍝ Homepage:
-
- ⎕ML←⎕IO←1
-
- ∇ r←Version
- :Access Public Shared
- r←'APLTreeUtils2' '1.1.1+50' '2021-03-01'
- ∇
-
- ∇ History
- ⍝ * 1.1.1 from 2021-03-01
- ⍝ * Package config file corrected (new format)
- ⍝ * 1.1.0 from 2020-09-26
- ⍝ * Method `IsRunningAsAdmin` added
- ⍝ * 1.0.0 from 2020-09-06
- ⍝ * This is the predecessor of `APLTreeUtils`
- ∇
-
- ∇ r←{x}Lowercase txt
- ⍝ `txt` is transformed into lowercase.\\
- ⍝ This function is kept for compatability reasons.
- :Access Public Shared
- x←{0<⎕NC ⍵:⍎⍵ ⋄ ¯3}'x'
- r←x ⎕C txt
- ∇
-
- ∇ r←Uppercase txt
- ⍝ `txt` is transformed into uppercase.\\
- ⍝ This function is kept for compatability reasons.
- :Access Public Shared
- r←1 ⎕C txt
- ∇
-
- ∇ r←IsChar y
- ⍝ Checks `y` for being text
- :Access Public Shared
- r←0 2∊⍨10|⎕DR y
- ∇
-
- ∇ r←ToNum y
- ⍝ Transforms `y` into number(s)
- :Access Public Shared
- r←⊃(//)⎕VFI y
- ∇
-
- ∇ r←IsScripted y
- ⍝ Returns a 1 for classes, interfaces and scripted namespaces and 0 otherwise.
- :Access Public Shared
- r←{11 16::0 ⋄ 1⊣⎕SRC ⍵}y
- ∇
-
- ∇ {r}←{msg}Assert y;EN;success
- ⍝ Use this to ensure certain conditions. If the condition is not met an error is signalled, otherwise a 1 is returned.\\
- ⍝ The optional left argument would become the message that is signalled.\\
- ⍝ `y` might be a scalar or a vector of length one: that must be a Boolean. 1 means "success".\\
- ⍝ `y` can also be a two-item vector:
- ⍝ 1. A Boolean as before
- ⍝ 2. An error number to be signalle; defaults to 11.
- :Access Public Shared
- r←1
- msg←{0<⎕NC ⍵:⍎⍵ ⋄ ''}'msg'
- (success EN)←2↑y,11
- :If (,1)≢,success
- msg ⎕SIGNAL EN
- :EndIf
- ∇
-
- ∇ r←IsDevelopment
- :Access Public Shared
- ⍝ Returns 1 in case the function is running under a Dyalog development (EXE or DLL).
- r←'Development'≡4⊃'#'⎕WG'APLVersion'
- r∨←'DLL'≡4⊃'#'⎕WG'APLVersion' ⍝ May be DLLRT instead!
- ∇
-
- ∇ r←{sep}SplitPath y;l
- ⍝ Separates the path from the filename and returns both.\\
- ⍝ Default for the optional left argument (the separator) are `\/`.\\
- ⍝ `'C:\Buffer\' 'my.txt' ←→ SplitPath 'C:\Buffer\my.txt'`
- ⍝ `(,¨'1.2.3.4.') (,'5') ←→ '.' SplitPath '1.2.3.4.5'`
- :Access Public Shared
- sep←,{0<⎕NC ⍵:⍎⍵ ⋄ '/\'}'sep'
- :If 0=≢y
- r←2⍴⊂y
- :Else
- l←1+-⌊/sep⍳⍨⌽y
- r←(l↓y)(l↑y)
- :EndIf
- ∇
-
- ∇ r←{sep}Split y;b
- :Access Public Shared
- ⍝ `'First' 'Second' ←→ Split 'First',(⎕UCS 13 10),'Second'`\\
- ⍝ `(,¨'1' '2' '3' '' '4') ←→ '.' Split '1.2.3..4'`\\
- ⍝ That's _different_ from what `(≠⊆⊢)` is doing:\\
- ⍝ `(,¨'1' '2' '3' '4') ←→ '.' (≠⊆⊢) '1.2.3..4'`\\
- ⍝ Default for the optional left argument (the separator) is CR+LF.
- sep←{0<⎕NC ⍵:⍎⍵ ⋄ ⎕UCS 13 10}'sep'
- b←(1↑⍨≢sep),sep⍷y ⍝ This is more efficient in terms of memory then doing it one one line
- r←(≢sep)↓¨b⊂sep,y
- ∇
-
- ∇ r←{sep}Last y;where
- :Access Public Shared
- ⍝ Returns the last part in `y`.\\
- ⍝ Default separator is the dot (`.`), so for a filename it would return the extension:\\
- ⍝ `BAT ←→ Last '/path/to/file.BAT'`\\
- ⍝ You can also use this to get the filename from a path:\\
- ⍝ `file.BAT ←→ '/\' Last '/path/to/file.BAT'`\\
- ⍝ Returns always a vector:\\
- ⍝ `(,¨'3') ←→ Last '1.2.3'`
- sep←{0<⎕NC ⍵:⍎⍵ ⋄ '.'}'sep'
- :If (≢y)=where←¯1+⌊/sep⍳⍨⌽,y
- r←0⍴y
- :ElseIf ~0 1∊⍨≡r←(-where)↑y
- r←⍬⍴r
- :EndIf
- ∇
-
- ∇ r←{x}DMB y;w
- :Access Public Shared
- ⍝ Delete leading, trailing and multiple blanks by default. Accepts scalar, vector and matrix as argument.
- x←{0<⎕NC ⍵:⍎⍵ ⋄ ' '}'x'
- r←x{~0 1∊⍨≡⍵:⍺ ∇¨⍵
- 2=⍴⍴⍵:↑⍺ ∇¨↓⍵
- (,⍺)≡,⍵:''
- w←1↓¯1↓⍺{⍵/⍨~(2⍴⍺)⍷⍵}⍺,⍵,⍺
- (0=⍴⍴⍵)∧1=≢w:⍬⍴⍵
- w
- }y
- ∇
-
- ∇ r←DLB y
- :Access Public Shared
- ⍝ Delete leading blanks. Accepts scalar, vector and matrix as argument.
- :If 2=|≡y
- r←DLB¨y
- :ElseIf 1=⍴⍴y
- r←(+/∧\' '=y)↓y ⍝ Vectors (main application)
- :ElseIf 2=⍴⍴y
- r←(+/∧\' '=y)⌽y ⍝ Matrix
- :ElseIf 0=⍴⍴y
- r←(1+' '≡y)⊃y'' ⍝ Scalar
- :EndIf
- ∇
-
- ∇ r←DTB y
- :Access Public Shared
- ⍝ Delete trailing blanks. Accepts scalar, vector and matrix as argument.
- :If 2=|≡y
- r←DTB¨y
- :ElseIf 1=⍴⍴y
- r←⌽{(+/∧\' '=⍵)↓⍵}⌽y ⍝ Vectors (main application)
- :ElseIf 2=⍴⍴y
- r←(-+/∧⌿∧\' '=⌽y)↓[2]y ⍝ Matrix
- :ElseIf 0=⍴⍴y
- r←(1+' '≡y)⊃y'' ⍝ Scalar
- :EndIf
- ∇
-
- ∇ {success}←{browser}GoToWebPage Url;wsh;url;html;title;EncodeBlanksForNix;⎕WX
- :Access Public Shared
- ⍝ Fires up the default browser and displays "Url". Exception is when the current
- ⍝ session is connected to Ride: then "Url" is displayed in the Ride browser.\\
- ⍝ Instead of using the default browser you can specify an EXE (Windows) or command
- ⍝ as the left argument. That will then be used to show "Url". Note that the left
- ⍝ argument is ignored in case the current session is connected to Ride.\\
- ⍝ For displaying a local file rather then a url add "file:///".\\
- ⍝ However, note that "file:///" does not work on some systems / with some browsers.\\
- ⍝ Returns 1 for success and 0 for failure. That can happen for example when the
- ⍝ Windows Scripting Host throws a DOMAIN ERROR.\\
- ⍝ Examples:
- ⍝ ~~~
- ⍝ GoToWebPage 'file:///c:/my.html'
- ⍝ GoToWebPage 'file://localhost/c:/my.html'
- ⍝ GoToWebPage 'http://aplwiki.com'
- ⍝ GoToWebPage 'https://en.wikipedia.org/wiki/Main_Page'
- ⍝ ~~~
- ⎕WX←1
- success←1
- url←Lowercase Url
- :If ∨/'file:'{⍺≡(≢⍺)↑⍵}url
- :If 'Win'≡GetOperatingSystem ⍬
- Url←'"',('"'~⍨'file://'{⍺,(≢⍺)↓⍵}Url),'"'
- :EndIf
- :ElseIf ∨/'https:'{⍺≡(≢⍺)↑⍵}url
- Url←'https://'{⍺,(≢⍺)↓⍵}Url
- :ElseIf ∨/'http:'{⍺≡(≢⍺)↑⍵}url
- Url←'http://'{⍺,(≢⍺)↓⍵}Url
- :Else
- :If ∨/'//:'∊Url ⍝ Any protocol at all?!
- ⍝ ? No idea what that protocol is, so we just allow it going through.
- :Else
- Url←'https://',Url ⍝ That's the default
- :EndIf
- :EndIf
- (('\'=Url)/Url)←'/'
- Url←{l←3+1⍳⍨'://'⍷⍵ ⋄ (l↑⍵),{(~'//'⍷⍵)/⍵}l↓Url}Url
- :If 3501⌶⍬ ⍝ Connected to Ride?
- :If 'file://'{⍺≡(≢⍺)↑⍵}Url
- ⍝Url←∊(⊂'\ ')@(⍸' '=Url)⊣Url
- Url←(≢'file://')↓Url
- html←⊃⎕NGET Url 1
- :If 0=≢title←'
' ''
- html,←⊂''
- html,←'' '