From be79ac82e2a542d21f15222119be99051f32dfa8 Mon Sep 17 00:00:00 2001 From: EverythingWindows Date: Thu, 17 Nov 2022 11:22:51 +0700 Subject: More structured in functions --- ShiftOS-TheRevival/API/TerminalAPI.vb | 2 + .../Functions/InGame/CodepointSystem.vb | 11 - ShiftOS-TheRevival/Functions/InGame/ColorSystem.vb | 165 ----- .../Functions/InGame/IntroStoryTell.vb | 41 -- .../Functions/InGame/LoreManager/IntroStoryTell.vb | 41 ++ .../Functions/InGame/ROMs/Strings.vb | 118 ++++ ShiftOS-TheRevival/Functions/InGame/Shiftoriums.vb | 684 --------------------- .../Functions/InGame/StoreManager/Shiftoriums.vb | 684 +++++++++++++++++++++ ShiftOS-TheRevival/Functions/InGame/Strings.vb | 118 ---- .../InGame/SystemManager/CodepointSystem.vb | 11 + .../Functions/InGame/SystemManager/ColorSystem.vb | 165 +++++ .../Functions/InGame/SystemManager/Terminate.vb | 15 + ShiftOS-TheRevival/Functions/InGame/Terminate.vb | 15 - .../DesktopEnvironment/master/DesktopManager.vb | 1 + .../MainForms/ShiftOSMenu.Designer.vb | 4 +- ShiftOS-TheRevival/MainForms/ShiftOSMenu.resx | 288 +++++++++ ShiftOS-TheRevival/ShiftOS-TheRevival.vbproj | 14 +- .../TerminalApplications/External/App_TextPad.vb | 34 - .../External/Textpad/App_TextPad.vb | 34 + 19 files changed, 1368 insertions(+), 1077 deletions(-) delete mode 100644 ShiftOS-TheRevival/Functions/InGame/CodepointSystem.vb delete mode 100644 ShiftOS-TheRevival/Functions/InGame/ColorSystem.vb delete mode 100644 ShiftOS-TheRevival/Functions/InGame/IntroStoryTell.vb create mode 100644 ShiftOS-TheRevival/Functions/InGame/LoreManager/IntroStoryTell.vb create mode 100644 ShiftOS-TheRevival/Functions/InGame/ROMs/Strings.vb delete mode 100644 ShiftOS-TheRevival/Functions/InGame/Shiftoriums.vb create mode 100644 ShiftOS-TheRevival/Functions/InGame/StoreManager/Shiftoriums.vb delete mode 100644 ShiftOS-TheRevival/Functions/InGame/Strings.vb create mode 100644 ShiftOS-TheRevival/Functions/InGame/SystemManager/CodepointSystem.vb create mode 100644 ShiftOS-TheRevival/Functions/InGame/SystemManager/ColorSystem.vb create mode 100644 ShiftOS-TheRevival/Functions/InGame/SystemManager/Terminate.vb delete mode 100644 ShiftOS-TheRevival/Functions/InGame/Terminate.vb delete mode 100644 ShiftOS-TheRevival/TerminalApplications/External/App_TextPad.vb create mode 100644 ShiftOS-TheRevival/TerminalApplications/External/Textpad/App_TextPad.vb diff --git a/ShiftOS-TheRevival/API/TerminalAPI.vb b/ShiftOS-TheRevival/API/TerminalAPI.vb index f199b84..1c7ad0b 100644 --- a/ShiftOS-TheRevival/API/TerminalAPI.vb +++ b/ShiftOS-TheRevival/API/TerminalAPI.vb @@ -174,6 +174,8 @@ Case "startx" StartX() Console_Windowed() + Case "stopx" + StopX() Case "textpad" If Strings.AvailableFeature(17) = "1" Then TextPad_WarnFile() diff --git a/ShiftOS-TheRevival/Functions/InGame/CodepointSystem.vb b/ShiftOS-TheRevival/Functions/InGame/CodepointSystem.vb deleted file mode 100644 index 6a76a28..0000000 --- a/ShiftOS-TheRevival/Functions/InGame/CodepointSystem.vb +++ /dev/null @@ -1,11 +0,0 @@ -Module CodepointSystem - Public Sub ChangeCP(Addition As Boolean, NeededCP As Integer) - Dim TempCP As Integer = Convert.ToInt32(Strings.ComputerInfo(2)) - If Addition = True Then - TempCP = TempCP + NeededCP - Else - TempCP = TempCP - NeededCP - End If - Strings.ComputerInfo(2) = Convert.ToString(TempCP) - End Sub -End Module diff --git a/ShiftOS-TheRevival/Functions/InGame/ColorSystem.vb b/ShiftOS-TheRevival/Functions/InGame/ColorSystem.vb deleted file mode 100644 index 80f1c8f..0000000 --- a/ShiftOS-TheRevival/Functions/InGame/ColorSystem.vb +++ /dev/null @@ -1,165 +0,0 @@ -Module ColorSystem - 'GUIDE to COLORS in TERMINAL - 'Using the same Hexadecimal numbering as what Command Prompt used to: - '0 = Black 8 = Gray - '1 = Blue 9 = Light Blue - '2 = Green A = Light Green - '3 = Aqua B = Light Aqua - '4 = Red C = Light Red - '5 = Purple D = Light Purple - '6 = Yellow E = Yellow - '7 = Dark Gray F = White - Public BgColor As Color - Public FgColor As Color - - Public Sub GetColor(App As String, Bg As String, Fg As String) - Select Case App - Case "terminal" - BgColor = Color.Black - FgColor = Color.White - Case "infobar" - BgColor = Color.White - FgColor = Color.Black - End Select - If Bg = Fg Then - NewLine("Background and Foreground Color cannot be same!") - Else - If Strings.AvailableFeature(10) = "1" Then - Select Case Bg - Case "0" - BgColor = Color.Black - Case "7" - BgColor = Color.Silver - Case "8" - BgColor = Color.Gray - Case "f" - BgColor = Color.White - Case "2", "9", "c" - If Strings.AvailableFeature(13) = "1" Then - Select Case Bg - Case "2" - BgColor = Color.Green - Case "9" - BgColor = Color.Blue - Case "c" - BgColor = Color.Red - End Select - Else - NewLine("One or two colors you selected is not available.") - End If - Case "1", "4", "a" - If Strings.AvailableFeature(14) = "1" Then - Select Case Bg - Case "1" - BgColor = Color.Navy - Case "4" - BgColor = Color.Maroon - Case "a" - BgColor = Color.Lime - End Select - Else - NewLine("One or two colors you selected is not available.") - End If - Case "3", "5", "6", "b", "d", "e" - If Strings.AvailableFeature(15) = "1" Then - Select Case Bg - Case "3" - BgColor = Color.Cyan - Case "5" - BgColor = Color.Magenta - Case "6" - BgColor = Color.Brown - Case "b" - BgColor = Color.Aqua - Case "d" - BgColor = Color.Fuchsia - Case "e" - BgColor = Color.Yellow - End Select - Else - NewLine("One or two colors you selected is not available.") - End If - Case Else - BgColor = Color.Black - End Select - Select Case Fg - Case "0" - FgColor = Color.Black - Case "7" - FgColor = Color.Silver - Case "8" - FgColor = Color.Gray - Case "f" - FgColor = Color.White - Case "2", "9", "c" - If Strings.AvailableFeature(13) = "1" Then - Select Case Fg - Case "2" - FgColor = Color.Green - Case "9" - FgColor = Color.Blue - Case "c" - FgColor = Color.Red - End Select - Else - NewLine("One or two colors you selected is not available.") - End If - Case "1", "4", "a" - If Strings.AvailableFeature(14) = "1" Then - Select Case Fg - Case "1" - FgColor = Color.Navy - Case "4" - FgColor = Color.Maroon - Case "a" - FgColor = Color.Lime - End Select - Else - NewLine("One or two colors you selected is not available.") - End If - Case "3", "5", "6", "b", "d", "e" - If Strings.AvailableFeature(15) = "1" Then - Select Case Fg - Case "3" - FgColor = Color.Cyan - Case "5" - FgColor = Color.Magenta - Case "6" - FgColor = Color.Brown - Case "b" - FgColor = Color.Aqua - Case "d" - FgColor = Color.Fuchsia - Case "e" - FgColor = Color.Yellow - End Select - Else - NewLine("One or two colors you selected is not available.") - End If - Case Else - FgColor = Color.White - End Select - Else - NewLine("Color is not supported for 1-bit Color Display") - Select Case App - Case "terminal" - BgColor = Color.Black - FgColor = Color.White - Case "infobar" - BgColor = Color.White - FgColor = Color.Black - End Select - End If - End If - Select Case App - Case "infobar" - Console.InfoBar.BackColor = BgColor - Console.InfoBar.ForeColor = FgColor - Strings.ComputerInfo(6) = Bg & Fg - Case "terminal" - Console.TextBox1.BackColor = BgColor - Console.TextBox1.ForeColor = FgColor - Strings.ComputerInfo(5) = Bg & Fg - End Select - End Sub -End Module diff --git a/ShiftOS-TheRevival/Functions/InGame/IntroStoryTell.vb b/ShiftOS-TheRevival/Functions/InGame/IntroStoryTell.vb deleted file mode 100644 index 048b61f..0000000 --- a/ShiftOS-TheRevival/Functions/InGame/IntroStoryTell.vb +++ /dev/null @@ -1,41 +0,0 @@ -Module IntroStoryTell - Public Sub StoryLineIntro(Timestamp As Integer) - Select Case Strings.ComputerInfo(3) - Case "0" - Select Case Timestamp - Case 5 - ResetLine("Connected to ") - Case 25 - NewLine(": Hey there, Unknown user!") - Case 60 - NewLine(": Congratulaions! You have been involuntarily selected for a test on my experimental operating system, ShiftOS.") - Case 125 - NewLine(": ShiftOS is an operating system that will evolve itself as you use it as I progressively add more features into ShiftOS.") - Case 160 - NewLine(": Currently ShiftOS isn't much from a basic command-line operating system.") - Case 210 - NewLine(": I don't wish to reveal my indentity at this point in time.") - Case 270 - NewLine(": I will install ShiftOS on your system once I leave while I work on... something else.") - Case 335 - NewLine(": Once you have ShiftOS rich feature enough, I will come back to you. In the mean time, goodbye!") - Case 400 - NewLine(" Disconnected") - Case 430 - ResetLine("Installing ShiftOS...") - Case 550 - ResetLine("ShiftOS Installed, The computer will restart in a few seconds") - Case 600 - Console.StoryOnlyTimer.Stop() - Console.TextBox1.Text = Nothing - Console.TextBox1.ReadOnly = False - Strings.ComputerInfo(0) = "shiftos" - Strings.ComputerInfo(1) = "user" - Console.CheckFeature() - Terminal_PrintPrompt() - Terminal_AssignPrompt() - TextRebind() - End Select - End Select - End Sub -End Module diff --git a/ShiftOS-TheRevival/Functions/InGame/LoreManager/IntroStoryTell.vb b/ShiftOS-TheRevival/Functions/InGame/LoreManager/IntroStoryTell.vb new file mode 100644 index 0000000..048b61f --- /dev/null +++ b/ShiftOS-TheRevival/Functions/InGame/LoreManager/IntroStoryTell.vb @@ -0,0 +1,41 @@ +Module IntroStoryTell + Public Sub StoryLineIntro(Timestamp As Integer) + Select Case Strings.ComputerInfo(3) + Case "0" + Select Case Timestamp + Case 5 + ResetLine("Connected to ") + Case 25 + NewLine(": Hey there, Unknown user!") + Case 60 + NewLine(": Congratulaions! You have been involuntarily selected for a test on my experimental operating system, ShiftOS.") + Case 125 + NewLine(": ShiftOS is an operating system that will evolve itself as you use it as I progressively add more features into ShiftOS.") + Case 160 + NewLine(": Currently ShiftOS isn't much from a basic command-line operating system.") + Case 210 + NewLine(": I don't wish to reveal my indentity at this point in time.") + Case 270 + NewLine(": I will install ShiftOS on your system once I leave while I work on... something else.") + Case 335 + NewLine(": Once you have ShiftOS rich feature enough, I will come back to you. In the mean time, goodbye!") + Case 400 + NewLine(" Disconnected") + Case 430 + ResetLine("Installing ShiftOS...") + Case 550 + ResetLine("ShiftOS Installed, The computer will restart in a few seconds") + Case 600 + Console.StoryOnlyTimer.Stop() + Console.TextBox1.Text = Nothing + Console.TextBox1.ReadOnly = False + Strings.ComputerInfo(0) = "shiftos" + Strings.ComputerInfo(1) = "user" + Console.CheckFeature() + Terminal_PrintPrompt() + Terminal_AssignPrompt() + TextRebind() + End Select + End Select + End Sub +End Module diff --git a/ShiftOS-TheRevival/Functions/InGame/ROMs/Strings.vb b/ShiftOS-TheRevival/Functions/InGame/ROMs/Strings.vb new file mode 100644 index 0000000..0bbada4 --- /dev/null +++ b/ShiftOS-TheRevival/Functions/InGame/ROMs/Strings.vb @@ -0,0 +1,118 @@ +Public Class Strings + Public Shared OSInfo() As String + Public Shared ComputerInfo(6) As String + Public Shared IsFree As Boolean + Public Shared OnceInfo(8) As String + Public Shared AvailableFeature(31) As String + Public Shared CLIInterpreter As String + Public Shared SaveFile As String + Public Shared Achievement As String + + 'STRING CATEGORIZATION WRITING RULES! + 'THIS IS IN ORDER TO REMAIN COMPATIBLE WITH OLDER VERSIONS! + ' + 'General string : + '(Row Number) = Function/Subject (default value : default) + ' + 'Each have to placed in numerical order + 'If there's moved strings for newer version, example: + '0 = Computer Name (0.1) => OS Version (0.2) => Root Location (0.3), etc. + 'If there's removed strings for newer version, example: + '69 = Secret Easter Egg (removed in 0.420) + 'If there's repurposed strings for newer version after removed, example: + '5 = FreeRoam enabled? (removed in 0.4) => Story Mode State + ' + 'ALWAYS WRITE THE NOTES IN COMMENTS, THIS CLASS ONLY IS FOR STORING STRINGS AND DEPLOYING STRINGS TO DISK + + 'OSInfo Strings: + '0 = OSVersion (default : dependant) + ' + 'OnceInfo Strings: + '0 = IsRoot? (0.1) (default : No) + '1 = RootDirectory (0.2.3) (default : Environment.SpecialDirectories.ApplicationData & "\ShiftOS\ShiftFS\") + '2 = Infobar Boolean (0.2.3) (default : True) + '3 = Color for Terminal (0.2.3) (default : 0F) => moved to ComputerInfo(5) + '4 = RootDirectoryString (0.2.3) (default : !) + '5 = Terminal TrackPos (0.2.3) (default : 0) + '6 = GameMode (0.2.3) (dependant) + '7 = MaxWidth (0.2.4) (depentant) + '8 = MaxHeight (0.2.4) (depentant) + ' + 'ComputerInfo Strings: + '0 = Computer Name (0.1) (default : shiftos) + '1 = Username (0.1) (default : user) + '2 = Codepoint (0.2) (default : 0) + '3 = Story Chapter (0.2) (default : 0 for New Game) + '4 = Installed Packages (0.2.3) (default : 0 for New Game) + '5 = Color for Terminal (0.2.4) (default : 0F) + '6 = Color for Infobar (0.2.4) (default : F0) + ' + 'AvailableFeature (Default is defined on the Story Mode, Free Mode automatically assigns every available feature to 1, Unavailable in the Shiftorium assigned as 2, Upgraded assigned as 3) Strings: + '0 = MAN command [Manual on each command] (0.2) (default : 0) + '1 = CLEAR command [Clearing the screen] (0.2) (default : 0) + '2 = PRINT command [Printing a string] (0.2.2) (default : 0) + '3 = Terminal Display Driver [Dependencies for advanced terminal applications] (0.2.2) (default : 0) + '4 = Terminal InfoBar [A panel bar at the bottom of the terminal to show 'Time', 'User Session', 'Codepoint', 'Program running'] (0.2.2) (default : 0) + '5 = Time by Second [Showing time in seconds form since midnight] (0.2.2) (default : 0) + '6 = Time by Minutes [Showing time in minutes form since midnight] (0.2.2) (default : 0) + '7 = Time by Hours [Showing time in hours form since midnight] (0.2.2) (default : 0) + '8 = Shiftfetch [ShiftOS port of Neofetch, A command-line system information tool] (0.2.3) (default : 0) + '9 = bc [Basic Calculator for ShiftOS] (0.2.3) (default : 0) + '10 = 2-bit Color Display [Adds Dark Gray and Light Gray support to the Display Driver] (0.2.3) (default : 0) + '11 = ShiftOS Key [A key to unlock advanced features on ShiftOS] (0.2.3) (default : 0) + '12 = Time by PM and AM [Showing time in hours form since midnight] (0.2.3) (default : 0) + '13 = Red, Green, Blue [Adds Red, Green, and Blue support to the Display Driver] (0.2.3) (default : 0) + '14 = RGB Variant [Adds lighter or darker variant of Red, Green, and Blue] (0.2.3) (default : 0) + '15 = 4-bit Color Display [Adds to 16 colours support to the Display Driver] (0.2.3) (default : 0) + '16 = Terminal Read-Only Memory Driver [ShiftOS Read-Only Memory support for HDD, SSD, etc.] (0.2.4) (default : 0) + '17 = TextPad [Notepad] (0.2.4) (default : 0) + '18 = ShiftKey [DOSKey for ShiftOS] (0.2.4) (default : 0) + '19 = Custom Username [Custom username for ShiftOS] (0.2.4) (default : 0) + '20 = Custom Hostname [Custom hostname for ShiftOS] (0.2.4) (default : 0) + '21 = Reverse String [Reverse a text] (0.2.4) (default : 0) + '22 = Cowsay [Cowsay] (0.2.4) (default : 0) + '23 = Time by Hours and Minutes [Shows time in Hours and Minutes format] (0.2.5) (default : 0) + '24 = Date command [Shows date in days since first day of the year format] (0.2.5) (default : 0) + '25 = Date by week [Shows date in weeks since first week of the year format] (0.2.5) (default : 0) + '26 = Date by month [Shows date in months since first month of the year format] (0.2.5) (default : 0) + '27 = Date by year [Shows date in year format] (0.2.5) (default : 0) + '28 = Date by month and year [Shows date in MM/YYYY format] (0.2.5) (default : 0) + '29 = Date by general [Shows date in general DD/MM/YYYY format] (0.2.5) (default : 0) + '30 = Batch-file support for ShiftOS [Gives execution support for ShiftOS Script File (.scr)] (0.2.5) (default : 0) + '31 = Clipboard support for ShiftOS [Gives clipboard support for copy-pasting in ShiftOS] (0.2.6) (default : 0) + ' + 'Features bought hierarchy : + 'ShiftOS Key (KEY) (5 CP) + '>ShiftOS Help Manual (MAN) (10 CP) + '>>Custom Username (USERNAME) (15 CP) + '>>Custom Hostname (HOSTNAME) (15 CP) + '>Terminal Clear (CLEAR) (20 CP) + '>>Terminal Print (PRINT) (25 CP) + '>>>Reverse String command (REV) (30 CP) + '>>>>Cowsay (50 CP) + '>>>>Fortune command (55 CP) + '>>>ShiftKey (ShOSKey) (45 CP) + '>>>Terminal Display Driver (TERMDSPDRV) (40 CP) + '>>>>Terminal InfoBar (INFOBAR) (50 CP) + '>>>>Shiftfetch (SHIFTFETCH) (55 CP) + '>>>>2-bit Color Display (2BITCOLOR) (60 CP) + '>>>>>Red, Green, Blue (rgb) (70 CP) + '>>>>>>RGB Variant (rgb2) (75 CP) + '>>>>>>>4-bit Color Display (4BITCOLOR) (80 CP) + '>>>>>>>>Terminal Read-Only Memory Driver (ROMDRIVER, DIR, MKDIR, RMDIR, CD, PWD) (90 CP) + '>>>>>>>>>TextPad (100 CP) + '>>>>>>>>>>Clipboard support (CLIPBOARD) (100 CP) + '>>>>>>>>>>ShiftOS Batch Script Support (BATCHSCRIPT) (100 CP) + '>>Basic Calculator (BC) (55 CP) + '>>Time by Seconds (TIME, STIME) (10 CP) + '>>>Time by Minutes (TIME, MTIME) (20 CP) + '>>>>Time by Hours (Time, HTIME) (30 CP) + '>>>>>PM and AM (Time, PMAM (40 CP)) + '>>>>>>Time by Hours and Minutes (Time, HHMM (50 CP)) + '>>>>>>>Date command (DATE (70 CP)) + '>>>>>>>>Date by week (DATE, WOY (75 CP)) + '>>>>>>>>>Date by month (DATE, MOY (80 CP)) + '>>>>>>>>>>Date by year (DATE, YEAR (85 CP)) + '>>>>>>>>>>>Date by month and year (DATE, MMYYYY (90 CP)) + '>>>>>>>>>>>>Date by general (DATE, GENERALDATE (95 CP)) +End Class diff --git a/ShiftOS-TheRevival/Functions/InGame/Shiftoriums.vb b/ShiftOS-TheRevival/Functions/InGame/Shiftoriums.vb deleted file mode 100644 index 89a1e77..0000000 --- a/ShiftOS-TheRevival/Functions/InGame/Shiftoriums.vb +++ /dev/null @@ -1,684 +0,0 @@ -Module Shiftoriums - Public prompt As String - - Public Sub Shiftorium_ListFeatures() - 'Shows available installable feature on Shiftorium - 'Only AvailableFeature that are in the value of 0 can be displayed in the list - NewLine("Shiftorium Available Feature(s)") - NewLine(Nothing) - If Strings.AvailableFeature(11) = "0" Then - NewLine("(key | 5 CP) ShiftOS Key") - Else - If Strings.AvailableFeature(0) = "0" Then - NewLine("(man | 10 CP) ShiftOS Help Manual") - Else - If Strings.AvailableFeature(19) = "0" Then - NewLine("(username | 15 CP) Custom Username") - End If - If Strings.AvailableFeature(20) = "0" Then - NewLine("(hostname | 15 CP) Custom hostname") - End If - End If - If Strings.AvailableFeature(1) = "0" Then - NewLine("(clear | 20 CP) Clear Terminal Screen") - Else - If Strings.AvailableFeature(2) = "0" Then - NewLine("(print | 25 CP) Print Terminal Screen") - Else - If Strings.AvailableFeature(3) = "0" Then - NewLine("(termdspdrv | 40 CP) Terminal Display Driver") - Else - If Strings.AvailableFeature(4) = "0" Then - NewLine("(infobar | 50 CP) Terminal InfoBar") - End If - If Strings.AvailableFeature(8) = "0" Then - NewLine("(shiftfetch | 55 CP) Shiftfetch") - End If - If Strings.AvailableFeature(10) = "0" Then - NewLine("(2bitcolor | 60 CP) 2-bit Color Support") - Else - If Strings.AvailableFeature(13) = "0" Then - NewLine("(rgb | 70 CP) Red, Green, and Blue") - Else - If Strings.AvailableFeature(14) = "0" Then - NewLine("(rgb2 | 75 CP) RGB Variant") - Else - If Strings.AvailableFeature(15) = "0" Then - NewLine("(4bitcolor | 80 CP) 4-bit Color Support") - Else - If Strings.AvailableFeature(16) = "0" Then - NewLine("(romdriver | 90 CP) Terminal Read-Only Memory Support") - Else - If Strings.AvailableFeature(17) = "0" Then - NewLine("(textpad | 100 CP) TextPad") - Else - If Strings.AvailableFeature(30) = "0" Then - NewLine("(batchscript | 100 CP) ShiftOS Batch Script Support") - End If - If Strings.AvailableFeature(31) = "0" Then - NewLine("(clipboard | 100 CP) Clipboard support") - End If - End If - End If - End If - End If - End If - End If - End If - If Strings.AvailableFeature(18) = "0" Then - NewLine("(shiftkey | 45 CP) ShiftKey") - End If - If Strings.AvailableFeature(21) = "0" Then - NewLine("(rev | 30 CP) Reverse String") - Else - If Strings.AvailableFeature(22) = "0" Then - NewLine("(cowsay | 50 CP) Cowsay") - End If - End If - End If - If Strings.AvailableFeature(5) = "0" Then - NewLine("(stime | 10 CP) Time by Seconds") - Else - If Strings.AvailableFeature(6) = "0" Then - NewLine("(mtime | 20 CP) Time by Minutes") - Else - If Strings.AvailableFeature(7) = "0" Then - NewLine("(htime | 30 CP) Time by Hours") - Else - If Strings.AvailableFeature(12) = "0" Then - NewLine("(pmam | 40 CP) PM and AM") - Else - If Strings.AvailableFeature(23) = "0" Then - NewLine("(hhmm | 50 CP) Time by Hours and Minutes") - Else - If Strings.AvailableFeature(24) = "0" Then - NewLine("(date | 70 CP) Date command") - Else - If Strings.AvailableFeature(25) = "0" Then - NewLine("(woy | 75 CP) Date by week of year") - Else - If Strings.AvailableFeature(26) = "0" Then - NewLine("(moy | 80 CP) Date by month of year") - Else - If Strings.AvailableFeature(27) = "0" Then - NewLine("(year | 85 CP) Date by year") - Else - If Strings.AvailableFeature(28) = "0" Then - NewLine("(mmyyyy | 90 CP) Date by month and year") - Else - If Strings.AvailableFeature(29) = "0" Then - NewLine("(generaldate | 95 CP) Date by general format") - End If - End If - End If - End If - End If - End If - End If - End If - End If - End If - End If - If Strings.AvailableFeature(9) = "0" Then - NewLine("(bc | 55 CP) Basic Calculator") - End If - End If - End If - End Sub - - Public Sub Shiftorium_InformationFeatures() - 'ManHeader is for the ShiftOS Help Manual header and the 'Cost' footer, kinda like template-ish - Dim ManHeader(1) As String - 'ManHeader(0) = Insert any feature here for the Case prompt - ManHeader(1) = "Cost: " - Select Case prompt - Case "man" - If Strings.AvailableFeature(0) = "0" Then - ManHeader(0) = "ShiftOS Help Manual (command: man)" - ManHeader(1) = "10 CP" - NewLine(ManHeader(0)) - NewLine(Nothing) - NewLine("Shows up any further help instruction on each command, its corresponding action and its example if necessary") - NewLine(Nothing) - NewLine(ManHeader(1)) - Console.BadCommand = False - End If - Case "clear" - If Strings.AvailableFeature(1) = "0" Then - ManHeader(0) = "Clear Terminal Screen (command: clear)" - ManHeader(1) = "20 CP" - Console.TextBox1.Text = Console.TextBox1.Text & Environment.NewLine & ManHeader(0) & Environment.NewLine & Environment.NewLine & "Clears the terminal screen" & Environment.NewLine & Environment.NewLine & ManHeader(1) - Console.BadCommand = False - End If - Case "print" - If Strings.AvailableFeature(2) = "0" Then - ManHeader(0) = "Print Command (command: print)" - ManHeader(1) = "25 CP" - Console.TextBox1.Text = Console.TextBox1.Text & Environment.NewLine & ManHeader(0) & Environment.NewLine & Environment.NewLine & "Prints a corresponding text entered in the command" & Environment.NewLine & Environment.NewLine & ManHeader(1) - Console.BadCommand = False - End If - Case "termdspdrv" - If Strings.AvailableFeature(3) = "0" Then - ManHeader(0) = "Terminal Display Driver" - ManHeader(1) = "40 CP" - Console.TextBox1.Text = Console.TextBox1.Text & Environment.NewLine & ManHeader(0) & Environment.NewLine & Environment.NewLine & "Display driver for ShiftOS' Terminal to utilize advantages such as Infobar, ASCII-based applications" & Environment.NewLine & Environment.NewLine & ManHeader(1) - Console.BadCommand = False - End If - Case "infobar" - If Strings.AvailableFeature(4) = "0" Then - ManHeader(0) = "Terminal InfoBar" - ManHeader(1) = "50 CP" - Console.TextBox1.Text = Console.TextBox1.Text & Environment.NewLine & ManHeader(0) & Environment.NewLine & Environment.NewLine & "Panel bar at the bottom of the terminal to display basic informations" & Environment.NewLine & Environment.NewLine & ManHeader(1) - Console.BadCommand = False - End If - Case "stime" - If Strings.AvailableFeature(5) = "0" Then - ManHeader(0) = "Time by Seconds" - ManHeader(1) = "10 CP" - Console.TextBox1.Text = Console.TextBox1.Text & Environment.NewLine & ManHeader(0) & Environment.NewLine & Environment.NewLine & "Shows time in seconds form since midnight" & Environment.NewLine & Environment.NewLine & ManHeader(1) - Console.BadCommand = False - End If - Case "stime" - If Strings.AvailableFeature(6) = "0" Then - ManHeader(0) = "Time by Minutes" - ManHeader(1) = "20 CP" - Console.TextBox1.Text = Console.TextBox1.Text & Environment.NewLine & ManHeader(0) & Environment.NewLine & Environment.NewLine & "Shows time in minutes form since midnight" & Environment.NewLine & Environment.NewLine & ManHeader(1) - Console.BadCommand = False - End If - Case "htime" - If Strings.AvailableFeature(7) = "0" Then - ManHeader(0) = "Time by Hours" - ManHeader(1) = "30 CP" - Console.TextBox1.Text = Console.TextBox1.Text & Environment.NewLine & ManHeader(0) & Environment.NewLine & Environment.NewLine & "Shows time in hours form since midnight" & Environment.NewLine & Environment.NewLine & ManHeader(1) - Console.BadCommand = False - End If - Case "shiftfetch" - If Strings.AvailableFeature(8) = "0" Then - ManHeader(0) = "Shiftfetch" - ManHeader(1) = "55 CP" - Console.TextBox1.Text = Console.TextBox1.Text & Environment.NewLine & ManHeader(0) & Environment.NewLine & Environment.NewLine & "ShiftOS port of Neofetch, A command-line system information tool" & Environment.NewLine & Environment.NewLine & ManHeader(1) - Console.BadCommand = False - End If - Case "bc" - If Strings.AvailableFeature(9) = "0" Then - ManHeader(0) = "Basic Calculator" - ManHeader(1) = "55 CP" - Console.TextBox1.Text = Console.TextBox1.Text & Environment.NewLine & ManHeader(0) & Environment.NewLine & Environment.NewLine & "Basic Calculator for simple calculation" & Environment.NewLine & Environment.NewLine & ManHeader(1) - Console.BadCommand = False - End If - Case "2bitcolor" - If Strings.AvailableFeature(10) = "0" Then - ManHeader(0) = "2-bit Color Support" - ManHeader(1) = "60 CP" - Console.TextBox1.Text = Console.TextBox1.Text & Environment.NewLine & ManHeader(0) & Environment.NewLine & Environment.NewLine & "Adds 2 colours (Dark Gray, Light Gray) supports to the terminal" & Environment.NewLine & Environment.NewLine & ManHeader(1) - Console.BadCommand = False - End If - Case "key" - If Strings.AvailableFeature(11) = "0" Then - ManHeader(0) = "ShiftOS Key" - ManHeader(1) = "5 CP" - Console.TextBox1.Text = Console.TextBox1.Text & Environment.NewLine & ManHeader(0) & Environment.NewLine & Environment.NewLine & "An encryption key to unlock advanced terminal feature for ShiftOS" & Environment.NewLine & Environment.NewLine & ManHeader(1) - Console.BadCommand = False - End If - Case "pmam" - If Strings.AvailableFeature(12) = "0" Then - ManHeader(0) = "PM and AM" - ManHeader(1) = "40 CP" - Console.TextBox1.Text = Console.TextBox1.Text & Environment.NewLine & ManHeader(0) & Environment.NewLine & Environment.NewLine & "Shows time in PM and AM format" & Environment.NewLine & Environment.NewLine & ManHeader(1) - Console.BadCommand = False - End If - Case "rgb" - If Strings.AvailableFeature(13) = "0" Then - ManHeader(0) = "Red, Green, and Blue" - ManHeader(1) = "70 CP" - Console.TextBox1.Text = Console.TextBox1.Text & Environment.NewLine & ManHeader(0) & Environment.NewLine & Environment.NewLine & "Adds Red, Green, and Blue support to the Display Driver" & Environment.NewLine & Environment.NewLine & ManHeader(1) - Console.BadCommand = False - End If - Case "rgb2" - If Strings.AvailableFeature(14) = "0" Then - ManHeader(0) = "RGB Variant" - ManHeader(1) = "75 CP" - Console.TextBox1.Text = Console.TextBox1.Text & Environment.NewLine & ManHeader(0) & Environment.NewLine & Environment.NewLine & "Adds lighter or darker variant of Red, Green, and Blue" & Environment.NewLine & Environment.NewLine & ManHeader(1) - Console.BadCommand = False - End If - Case "4bitcolor" - If Strings.AvailableFeature(15) = "0" Then - ManHeader(0) = "4-bit Color Display" - ManHeader(1) = "80 CP" - Console.TextBox1.Text = Console.TextBox1.Text & Environment.NewLine & ManHeader(0) & Environment.NewLine & Environment.NewLine & "Adds to 16 colours support to the Display Driver" & Environment.NewLine & Environment.NewLine & ManHeader(1) - Console.BadCommand = False - End If - Case "romdriver" - If Strings.AvailableFeature(16) = "0" Then - ManHeader(0) = "Terminal Read-Only Memory Driver" - ManHeader(1) = "90 CP" - Console.TextBox1.Text = Console.TextBox1.Text & Environment.NewLine & ManHeader(0) & Environment.NewLine & Environment.NewLine & "ShiftOS Read-Only Memory support for ShiftOS such as writing and reading permanent memory such as HDD, SDD, etc." & Environment.NewLine & Environment.NewLine & ManHeader(1) - Console.BadCommand = False - End If - Case "textpad" - If Strings.AvailableFeature(17) = "0" Then - ManHeader(0) = "TextPad" - ManHeader(1) = "100 CP" - Console.TextBox1.Text = Console.TextBox1.Text & Environment.NewLine & ManHeader(0) & Environment.NewLine & Environment.NewLine & "A simple text-editor for ShiftOS" & Environment.NewLine & Environment.NewLine & ManHeader(1) - Console.BadCommand = False - End If - Case "shiftkey" - If Strings.AvailableFeature(18) = "0" Then - ManHeader(0) = "ShiftKey" - ManHeader(1) = "45 CP" - Console.TextBox1.Text = Console.TextBox1.Text & Environment.NewLine & ManHeader(0) & Environment.NewLine & Environment.NewLine & "Recall the previous command on terminal" & Environment.NewLine & Environment.NewLine & ManHeader(1) - Console.BadCommand = False - End If - Case "username" - If Strings.AvailableFeature(19) = "0" Then - ManHeader(0) = "Custom Username" - ManHeader(1) = "15 CP" - Console.TextBox1.Text = Console.TextBox1.Text & Environment.NewLine & ManHeader(0) & Environment.NewLine & Environment.NewLine & "Set custom username for ShfitOS" & Environment.NewLine & Environment.NewLine & ManHeader(1) - Console.BadCommand = False - End If - Case "hostname" - If Strings.AvailableFeature(20) = "0" Then - ManHeader(0) = "Custom Hostname" - ManHeader(1) = "15 CP" - Console.TextBox1.Text = Console.TextBox1.Text & Environment.NewLine & ManHeader(0) & Environment.NewLine & Environment.NewLine & "Set custom hostname/computer name for ShfitOS" & Environment.NewLine & Environment.NewLine & ManHeader(1) - Console.BadCommand = False - End If - Case "rev" - If Strings.AvailableFeature(21) = "0" Then - ManHeader(0) = "Reverse String" - ManHeader(1) = "30 CP" - Console.TextBox1.Text = Console.TextBox1.Text & Environment.NewLine & ManHeader(0) & Environment.NewLine & Environment.NewLine & "Reverse any text you entered in the terminal" & Environment.NewLine & Environment.NewLine & ManHeader(1) - Console.BadCommand = False - End If - Case "cowsay" - If Strings.AvailableFeature(22) = "0" Then - ManHeader(0) = "Cowsay" - ManHeader(1) = "50 CP" - Console.TextBox1.Text = Console.TextBox1.Text & Environment.NewLine & ManHeader(0) & Environment.NewLine & Environment.NewLine & "Make the ASCII cow say anything you want to" & Environment.NewLine & Environment.NewLine & ManHeader(1) - Console.BadCommand = False - End If - Case "hhmm" - If Strings.AvailableFeature(23) = "0" Then - ManHeader(0) = "Time by Hours and Minutes" - ManHeader(1) = "50 CP" - Console.TextBox1.Text = Console.TextBox1.Text & Environment.NewLine & ManHeader(0) & Environment.NewLine & Environment.NewLine & "Shows time in Hours and Minutes format" & Environment.NewLine & Environment.NewLine & ManHeader(1) - Console.BadCommand = False - End If - Case "date" - If Strings.AvailableFeature(24) = "0" Then - ManHeader(0) = "Date command" - ManHeader(1) = "70 CP" - NewLine(ManHeader(0)) - NewLine(Nothing) - NewLine("Displays date in days format since first day of the year") - NewLine(Nothing) - NewLine(ManHeader(1)) - Console.BadCommand = False - End If - Case "woy" - If Strings.AvailableFeature(25) = "0" Then - ManHeader(0) = "Date by week of year" - ManHeader(1) = "75 CP" - NewLine(ManHeader(0)) - NewLine(Nothing) - NewLine("Displays date in week format since first week of the year") - NewLine(Nothing) - NewLine(ManHeader(1)) - Console.BadCommand = False - End If - Case "moy" - If Strings.AvailableFeature(26) = "0" Then - ManHeader(0) = "Date by month of year" - ManHeader(1) = "80 CP" - NewLine(ManHeader(0)) - NewLine(Nothing) - NewLine("Displays date in month format since first month of the year") - NewLine(Nothing) - NewLine(ManHeader(1)) - Console.BadCommand = False - End If - Case "year" - If Strings.AvailableFeature(27) = "0" Then - ManHeader(0) = "Date by year" - ManHeader(1) = "85 CP" - NewLine(ManHeader(0)) - NewLine(Nothing) - NewLine("Displays date in year format") - NewLine(Nothing) - NewLine(ManHeader(1)) - Console.BadCommand = False - End If - Case "mmyyyy" - If Strings.AvailableFeature(28) = "0" Then - ManHeader(0) = "Date by month and year" - ManHeader(1) = "90 CP" - NewLine(ManHeader(0)) - NewLine(Nothing) - NewLine("Displays date in month and year format") - NewLine(Nothing) - NewLine(ManHeader(1)) - Console.BadCommand = False - End If - Case "generaldate" - If Strings.AvailableFeature(29) = "0" Then - ManHeader(0) = "Date by general format" - ManHeader(1) = "95 CP" - NewLine(ManHeader(0)) - NewLine(Nothing) - NewLine("Displays date in DD/MM/YYYY format") - NewLine(Nothing) - NewLine(ManHeader(1)) - Console.BadCommand = False - End If - Case "batchscript" - If Strings.AvailableFeature(30) = "0" Then - ManHeader(0) = "ShiftOS Batch Script Support" - ManHeader(1) = "100 CP" - NewLine(ManHeader(0)) - NewLine(Nothing) - NewLine("Adds the supports for ShiftOS Batch Script") - NewLine(Nothing) - NewLine(ManHeader(1)) - Console.BadCommand = False - End If - Case "clipboard" - If Strings.AvailableFeature(31) = "0" Then - ManHeader(0) = "Clipboard Support" - ManHeader(1) = "100 CP" - NewLine(ManHeader(0)) - NewLine(Nothing) - NewLine("Adds the supports for clipboard") - NewLine(Nothing) - NewLine(ManHeader(1)) - Console.BadCommand = False - End If - Case Else - Console.BadCommand = False - Console.TextBox1.Text = Console.TextBox1.Text & Environment.NewLine & "Shiftorium: Bad command or not available" - End Select - End Sub - - Public Sub Shiftorium_DetectInstallFeatures() - NewLine("Installing feature...") - Select Case prompt - Case "man" - Shiftorium_InstallFeatures(True, "man", 0, 10) - Console.BadCommand = False - Case "clear" - Shiftorium_InstallFeatures(True, "clear", 1, 20) - Console.BadCommand = False - Case "print" - Shiftorium_InstallFeatures(True, "print", 2, 25) - Console.BadCommand = False - Case "termdspdrv" - Shiftorium_InstallFeatures(True, "termdspdrv", 3, 40) - Console.BadCommand = False - Case "infobar" - Shiftorium_InstallFeatures(True, "infobar", 4, 50) - Console.BadCommand = False - Case "stime" - Shiftorium_InstallFeatures(True, "stime", 5, 10) - Console.BadCommand = False - Case "mtime" - Shiftorium_InstallFeatures(True, "mtime", 6, 20) - Console.BadCommand = False - Case "htime" - Shiftorium_InstallFeatures(True, "htime", 7, 30) - Console.BadCommand = False - Case "shiftfetch" - Shiftorium_InstallFeatures(True, "shiftfetch", 8, 55) - Console.BadCommand = False - Case "bc" - Shiftorium_InstallFeatures(True, "bc", 9, 55) - Console.BadCommand = False - Case "2bitcolor" - Shiftorium_InstallFeatures(True, "2bitcolor", 10, 60) - Console.BadCommand = False - Case "key" - Shiftorium_InstallFeatures(True, "key", 11, 5) - Console.BadCommand = False - Case "pmam" - Shiftorium_InstallFeatures(True, "pmam", 12, 40) - Console.BadCommand = False - Case "rgb" - Shiftorium_InstallFeatures(True, "rgb", 13, 70) - Console.BadCommand = False - Case "rgb2" - Shiftorium_InstallFeatures(True, "rgb2", 14, 75) - Console.BadCommand = False - Case "4bitcolor" - Shiftorium_InstallFeatures(True, "4bitcolor", 15, 80) - Console.BadCommand = False - Case "romdriver" - Shiftorium_InstallFeatures(True, "romdriver", 16, 90) - Console.BadCommand = False - Case "textpad" - Shiftorium_InstallFeatures(True, "textpad", 17, 100) - Console.BadCommand = False - Case "shiftkey" - Shiftorium_InstallFeatures(True, "shiftkey", 18, 45) - Console.BadCommand = False - Case "username" - Shiftorium_InstallFeatures(True, "username", 19, 15) - Console.BadCommand = False - Case "hostname" - Shiftorium_InstallFeatures(True, "hostname", 20, 15) - Console.BadCommand = False - Case "rev" - Shiftorium_InstallFeatures(True, "rev", 21, 30) - Console.BadCommand = False - Case "cowsay" - Shiftorium_InstallFeatures(True, "cowsay", 22, 50) - Console.BadCommand = False - Case "hhmm" - Shiftorium_InstallFeatures(True, "hhmm", 23, 50) - Console.BadCommand = False - Case "date" - Shiftorium_InstallFeatures(True, "date", 24, 70) - Console.BadCommand = False - Case "woy" - Shiftorium_InstallFeatures(True, "woy", 25, 75) - Console.BadCommand = False - Case "moy" - Shiftorium_InstallFeatures(True, "moy", 26, 80) - Console.BadCommand = False - Case "year" - Shiftorium_InstallFeatures(True, "year", 27, 85) - Console.BadCommand = False - Case "mmyyyy" - Shiftorium_InstallFeatures(True, "mmyyyy", 28, 90) - Console.BadCommand = False - Case "generaldate" - Shiftorium_InstallFeatures(True, "generaldate", 29, 95) - Console.BadCommand = False - Case "batchscript" - Shiftorium_InstallFeatures(True, "batchscript", 30, 100) - Console.BadCommand = False - Case "clipboard" - Shiftorium_InstallFeatures(True, "clipboard", 31, 100) - Console.BadCommand = False - Case Else - Console.BadCommand = False - NewLine("Shiftorium: Bad command or not available") - End Select - End Sub - - Public Sub Shiftorium_InstallFeatures(IsCLI As Boolean, Feature As String, FeatureRow As Integer, Codepoint As Integer) - 'Import the current CP as an Integer - Dim TempCP As Integer = Convert.ToInt32(Strings.ComputerInfo(2)) - 'See what feature that are going to be installed - Select Case Strings.AvailableFeature(FeatureRow) - Case "0" - If TempCP >= Codepoint Then - Dim success As Boolean = False - Select Case Feature - Case "man" - Strings.AvailableFeature(0) = "1" - Strings.AvailableFeature(19) = "0" - Strings.AvailableFeature(20) = "0" - success = True - Case "clear" - Strings.AvailableFeature(1) = "1" - Strings.AvailableFeature(2) = "0" - Strings.AvailableFeature(5) = "0" - Strings.AvailableFeature(9) = "0" - success = True - Case "print" - Strings.AvailableFeature(2) = "1" - Strings.AvailableFeature(3) = "0" - Strings.AvailableFeature(18) = "0" - Strings.AvailableFeature(21) = "0" - success = True - Case "termdspdrv" - Strings.AvailableFeature(3) = "1" - Strings.AvailableFeature(4) = "0" - Strings.AvailableFeature(8) = "0" - Strings.AvailableFeature(10) = "0" - success = True - Case "infobar" - Strings.AvailableFeature(4) = "1" - success = True - Case "stime" - Strings.AvailableFeature(5) = "1" - Strings.AvailableFeature(6) = "0" - success = True - Case "mtime" - Strings.AvailableFeature(5) = "3" - Strings.AvailableFeature(6) = "1" - Strings.AvailableFeature(7) = "0" - success = True - Case "htime" - Strings.AvailableFeature(6) = "3" - Strings.AvailableFeature(7) = "1" - Strings.AvailableFeature(12) = "0" - success = True - Case "shiftfetch" - Strings.AvailableFeature(8) = "1" - success = True - Case "bc" - Strings.AvailableFeature(9) = "1" - success = True - Case "2bitcolor" - Strings.AvailableFeature(10) = "1" - Strings.AvailableFeature(13) = "0" - success = True - Case "key" - Strings.AvailableFeature(11) = "1" - Strings.AvailableFeature(0) = "0" - Strings.AvailableFeature(1) = "0" - success = True - Case "pmam" - Strings.AvailableFeature(7) = "3" - Strings.AvailableFeature(12) = "1" - Strings.AvailableFeature(23) = "0" - success = True - Case "rgb" - Strings.AvailableFeature(13) = "1" - Strings.AvailableFeature(14) = "0" - success = True - Case "rgb2" - Strings.AvailableFeature(14) = "1" - Strings.AvailableFeature(15) = "0" - success = True - Case "4bitcolor" - Strings.AvailableFeature(15) = "1" - Strings.AvailableFeature(16) = "0" - success = True - Case "romdriver" - Strings.AvailableFeature(16) = "1" - Strings.AvailableFeature(17) = "0" - success = True - Case "textpad" - Strings.AvailableFeature(17) = "1" - Strings.AvailableFeature(30) = "0" - Strings.AvailableFeature(31) = "0" - success = True - Case "shiftkey" - Strings.AvailableFeature(18) = "1" - success = True - Case "username" - Strings.AvailableFeature(19) = "1" - success = True - Case "hostname" - Strings.AvailableFeature(20) = "1" - success = True - Case "rev" - Strings.AvailableFeature(21) = "1" - Strings.AvailableFeature(22) = "0" - success = True - Case "cowsay" - Strings.AvailableFeature(22) = "1" - success = True - Case "hhmm" - Strings.AvailableFeature(12) = "3" - Strings.AvailableFeature(23) = "1" - Strings.AvailableFeature(24) = "0" - success = True - Case "date" - Strings.AvailableFeature(24) = "1" - Strings.AvailableFeature(25) = "0" - success = True - Case "woy" - Strings.AvailableFeature(24) = "3" - Strings.AvailableFeature(25) = "1" - Strings.AvailableFeature(26) = "0" - success = True - Case "moy" - Strings.AvailableFeature(25) = "3" - Strings.AvailableFeature(26) = "1" - Strings.AvailableFeature(27) = "0" - success = True - Case "year" - Strings.AvailableFeature(26) = "3" - Strings.AvailableFeature(27) = "1" - Strings.AvailableFeature(28) = "0" - success = True - Case "mmyyyy" - Strings.AvailableFeature(27) = "3" - Strings.AvailableFeature(28) = "1" - Strings.AvailableFeature(29) = "0" - success = True - Case "generaldate" - Strings.AvailableFeature(28) = "3" - Strings.AvailableFeature(29) = "1" - success = True - Case "batchscript" - Strings.AvailableFeature(30) = "1" - success = True - Case "clipboard" - Strings.AvailableFeature(31) = "1" - success = True - End Select - If success = False Then - If IsCLI = True Then - NewLine("Shiftorium: Invalid command or feature already installed") - End If - Else - 'It will deduct the current codepoint to the modified codepoint and exporting it back to ComputerInfo(2) - Strings.ComputerInfo(4) = Strings.ComputerInfo(4) + 1 - TempCP = TempCP - Codepoint - Strings.ComputerInfo(2) = Convert.ToString(TempCP) - If IsCLI = True Then - NewLine("Feature has been install succesfully") - End If - End If - Else - If IsCLI = True Then - NewLine("Shiftorium: Insufficent Codepoint") - End If - End If - Case "1" - If IsCLI = True Then - NewLine("Shiftorium: Feature has already been installed") - End If - Case "2" - If IsCLI = True Then - NewLine("Shiftorium: Feature is not available") - End If - Case "3" - If IsCLI = True Then - NewLine("Shiftorium: Feature is already upgraded to a newer one") - End If - End Select - End Sub -End Module diff --git a/ShiftOS-TheRevival/Functions/InGame/StoreManager/Shiftoriums.vb b/ShiftOS-TheRevival/Functions/InGame/StoreManager/Shiftoriums.vb new file mode 100644 index 0000000..89a1e77 --- /dev/null +++ b/ShiftOS-TheRevival/Functions/InGame/StoreManager/Shiftoriums.vb @@ -0,0 +1,684 @@ +Module Shiftoriums + Public prompt As String + + Public Sub Shiftorium_ListFeatures() + 'Shows available installable feature on Shiftorium + 'Only AvailableFeature that are in the value of 0 can be displayed in the list + NewLine("Shiftorium Available Feature(s)") + NewLine(Nothing) + If Strings.AvailableFeature(11) = "0" Then + NewLine("(key | 5 CP) ShiftOS Key") + Else + If Strings.AvailableFeature(0) = "0" Then + NewLine("(man | 10 CP) ShiftOS Help Manual") + Else + If Strings.AvailableFeature(19) = "0" Then + NewLine("(username | 15 CP) Custom Username") + End If + If Strings.AvailableFeature(20) = "0" Then + NewLine("(hostname | 15 CP) Custom hostname") + End If + End If + If Strings.AvailableFeature(1) = "0" Then + NewLine("(clear | 20 CP) Clear Terminal Screen") + Else + If Strings.AvailableFeature(2) = "0" Then + NewLine("(print | 25 CP) Print Terminal Screen") + Else + If Strings.AvailableFeature(3) = "0" Then + NewLine("(termdspdrv | 40 CP) Terminal Display Driver") + Else + If Strings.AvailableFeature(4) = "0" Then + NewLine("(infobar | 50 CP) Terminal InfoBar") + End If + If Strings.AvailableFeature(8) = "0" Then + NewLine("(shiftfetch | 55 CP) Shiftfetch") + End If + If Strings.AvailableFeature(10) = "0" Then + NewLine("(2bitcolor | 60 CP) 2-bit Color Support") + Else + If Strings.AvailableFeature(13) = "0" Then + NewLine("(rgb | 70 CP) Red, Green, and Blue") + Else + If Strings.AvailableFeature(14) = "0" Then + NewLine("(rgb2 | 75 CP) RGB Variant") + Else + If Strings.AvailableFeature(15) = "0" Then + NewLine("(4bitcolor | 80 CP) 4-bit Color Support") + Else + If Strings.AvailableFeature(16) = "0" Then + NewLine("(romdriver | 90 CP) Terminal Read-Only Memory Support") + Else + If Strings.AvailableFeature(17) = "0" Then + NewLine("(textpad | 100 CP) TextPad") + Else + If Strings.AvailableFeature(30) = "0" Then + NewLine("(batchscript | 100 CP) ShiftOS Batch Script Support") + End If + If Strings.AvailableFeature(31) = "0" Then + NewLine("(clipboard | 100 CP) Clipboard support") + End If + End If + End If + End If + End If + End If + End If + End If + If Strings.AvailableFeature(18) = "0" Then + NewLine("(shiftkey | 45 CP) ShiftKey") + End If + If Strings.AvailableFeature(21) = "0" Then + NewLine("(rev | 30 CP) Reverse String") + Else + If Strings.AvailableFeature(22) = "0" Then + NewLine("(cowsay | 50 CP) Cowsay") + End If + End If + End If + If Strings.AvailableFeature(5) = "0" Then + NewLine("(stime | 10 CP) Time by Seconds") + Else + If Strings.AvailableFeature(6) = "0" Then + NewLine("(mtime | 20 CP) Time by Minutes") + Else + If Strings.AvailableFeature(7) = "0" Then + NewLine("(htime | 30 CP) Time by Hours") + Else + If Strings.AvailableFeature(12) = "0" Then + NewLine("(pmam | 40 CP) PM and AM") + Else + If Strings.AvailableFeature(23) = "0" Then + NewLine("(hhmm | 50 CP) Time by Hours and Minutes") + Else + If Strings.AvailableFeature(24) = "0" Then + NewLine("(date | 70 CP) Date command") + Else + If Strings.AvailableFeature(25) = "0" Then + NewLine("(woy | 75 CP) Date by week of year") + Else + If Strings.AvailableFeature(26) = "0" Then + NewLine("(moy | 80 CP) Date by month of year") + Else + If Strings.AvailableFeature(27) = "0" Then + NewLine("(year | 85 CP) Date by year") + Else + If Strings.AvailableFeature(28) = "0" Then + NewLine("(mmyyyy | 90 CP) Date by month and year") + Else + If Strings.AvailableFeature(29) = "0" Then + NewLine("(generaldate | 95 CP) Date by general format") + End If + End If + End If + End If + End If + End If + End If + End If + End If + End If + End If + If Strings.AvailableFeature(9) = "0" Then + NewLine("(bc | 55 CP) Basic Calculator") + End If + End If + End If + End Sub + + Public Sub Shiftorium_InformationFeatures() + 'ManHeader is for the ShiftOS Help Manual header and the 'Cost' footer, kinda like template-ish + Dim ManHeader(1) As String + 'ManHeader(0) = Insert any feature here for the Case prompt + ManHeader(1) = "Cost: " + Select Case prompt + Case "man" + If Strings.AvailableFeature(0) = "0" Then + ManHeader(0) = "ShiftOS Help Manual (command: man)" + ManHeader(1) = "10 CP" + NewLine(ManHeader(0)) + NewLine(Nothing) + NewLine("Shows up any further help instruction on each command, its corresponding action and its example if necessary") + NewLine(Nothing) + NewLine(ManHeader(1)) + Console.BadCommand = False + End If + Case "clear" + If Strings.AvailableFeature(1) = "0" Then + ManHeader(0) = "Clear Terminal Screen (command: clear)" + ManHeader(1) = "20 CP" + Console.TextBox1.Text = Console.TextBox1.Text & Environment.NewLine & ManHeader(0) & Environment.NewLine & Environment.NewLine & "Clears the terminal screen" & Environment.NewLine & Environment.NewLine & ManHeader(1) + Console.BadCommand = False + End If + Case "print" + If Strings.AvailableFeature(2) = "0" Then + ManHeader(0) = "Print Command (command: print)" + ManHeader(1) = "25 CP" + Console.TextBox1.Text = Console.TextBox1.Text & Environment.NewLine & ManHeader(0) & Environment.NewLine & Environment.NewLine & "Prints a corresponding text entered in the command" & Environment.NewLine & Environment.NewLine & ManHeader(1) + Console.BadCommand = False + End If + Case "termdspdrv" + If Strings.AvailableFeature(3) = "0" Then + ManHeader(0) = "Terminal Display Driver" + ManHeader(1) = "40 CP" + Console.TextBox1.Text = Console.TextBox1.Text & Environment.NewLine & ManHeader(0) & Environment.NewLine & Environment.NewLine & "Display driver for ShiftOS' Terminal to utilize advantages such as Infobar, ASCII-based applications" & Environment.NewLine & Environment.NewLine & ManHeader(1) + Console.BadCommand = False + End If + Case "infobar" + If Strings.AvailableFeature(4) = "0" Then + ManHeader(0) = "Terminal InfoBar" + ManHeader(1) = "50 CP" + Console.TextBox1.Text = Console.TextBox1.Text & Environment.NewLine & ManHeader(0) & Environment.NewLine & Environment.NewLine & "Panel bar at the bottom of the terminal to display basic informations" & Environment.NewLine & Environment.NewLine & ManHeader(1) + Console.BadCommand = False + End If + Case "stime" + If Strings.AvailableFeature(5) = "0" Then + ManHeader(0) = "Time by Seconds" + ManHeader(1) = "10 CP" + Console.TextBox1.Text = Console.TextBox1.Text & Environment.NewLine & ManHeader(0) & Environment.NewLine & Environment.NewLine & "Shows time in seconds form since midnight" & Environment.NewLine & Environment.NewLine & ManHeader(1) + Console.BadCommand = False + End If + Case "stime" + If Strings.AvailableFeature(6) = "0" Then + ManHeader(0) = "Time by Minutes" + ManHeader(1) = "20 CP" + Console.TextBox1.Text = Console.TextBox1.Text & Environment.NewLine & ManHeader(0) & Environment.NewLine & Environment.NewLine & "Shows time in minutes form since midnight" & Environment.NewLine & Environment.NewLine & ManHeader(1) + Console.BadCommand = False + End If + Case "htime" + If Strings.AvailableFeature(7) = "0" Then + ManHeader(0) = "Time by Hours" + ManHeader(1) = "30 CP" + Console.TextBox1.Text = Console.TextBox1.Text & Environment.NewLine & ManHeader(0) & Environment.NewLine & Environment.NewLine & "Shows time in hours form since midnight" & Environment.NewLine & Environment.NewLine & ManHeader(1) + Console.BadCommand = False + End If + Case "shiftfetch" + If Strings.AvailableFeature(8) = "0" Then + ManHeader(0) = "Shiftfetch" + ManHeader(1) = "55 CP" + Console.TextBox1.Text = Console.TextBox1.Text & Environment.NewLine & ManHeader(0) & Environment.NewLine & Environment.NewLine & "ShiftOS port of Neofetch, A command-line system information tool" & Environment.NewLine & Environment.NewLine & ManHeader(1) + Console.BadCommand = False + End If + Case "bc" + If Strings.AvailableFeature(9) = "0" Then + ManHeader(0) = "Basic Calculator" + ManHeader(1) = "55 CP" + Console.TextBox1.Text = Console.TextBox1.Text & Environment.NewLine & ManHeader(0) & Environment.NewLine & Environment.NewLine & "Basic Calculator for simple calculation" & Environment.NewLine & Environment.NewLine & ManHeader(1) + Console.BadCommand = False + End If + Case "2bitcolor" + If Strings.AvailableFeature(10) = "0" Then + ManHeader(0) = "2-bit Color Support" + ManHeader(1) = "60 CP" + Console.TextBox1.Text = Console.TextBox1.Text & Environment.NewLine & ManHeader(0) & Environment.NewLine & Environment.NewLine & "Adds 2 colours (Dark Gray, Light Gray) supports to the terminal" & Environment.NewLine & Environment.NewLine & ManHeader(1) + Console.BadCommand = False + End If + Case "key" + If Strings.AvailableFeature(11) = "0" Then + ManHeader(0) = "ShiftOS Key" + ManHeader(1) = "5 CP" + Console.TextBox1.Text = Console.TextBox1.Text & Environment.NewLine & ManHeader(0) & Environment.NewLine & Environment.NewLine & "An encryption key to unlock advanced terminal feature for ShiftOS" & Environment.NewLine & Environment.NewLine & ManHeader(1) + Console.BadCommand = False + End If + Case "pmam" + If Strings.AvailableFeature(12) = "0" Then + ManHeader(0) = "PM and AM" + ManHeader(1) = "40 CP" + Console.TextBox1.Text = Console.TextBox1.Text & Environment.NewLine & ManHeader(0) & Environment.NewLine & Environment.NewLine & "Shows time in PM and AM format" & Environment.NewLine & Environment.NewLine & ManHeader(1) + Console.BadCommand = False + End If + Case "rgb" + If Strings.AvailableFeature(13) = "0" Then + ManHeader(0) = "Red, Green, and Blue" + ManHeader(1) = "70 CP" + Console.TextBox1.Text = Console.TextBox1.Text & Environment.NewLine & ManHeader(0) & Environment.NewLine & Environment.NewLine & "Adds Red, Green, and Blue support to the Display Driver" & Environment.NewLine & Environment.NewLine & ManHeader(1) + Console.BadCommand = False + End If + Case "rgb2" + If Strings.AvailableFeature(14) = "0" Then + ManHeader(0) = "RGB Variant" + ManHeader(1) = "75 CP" + Console.TextBox1.Text = Console.TextBox1.Text & Environment.NewLine & ManHeader(0) & Environment.NewLine & Environment.NewLine & "Adds lighter or darker variant of Red, Green, and Blue" & Environment.NewLine & Environment.NewLine & ManHeader(1) + Console.BadCommand = False + End If + Case "4bitcolor" + If Strings.AvailableFeature(15) = "0" Then + ManHeader(0) = "4-bit Color Display" + ManHeader(1) = "80 CP" + Console.TextBox1.Text = Console.TextBox1.Text & Environment.NewLine & ManHeader(0) & Environment.NewLine & Environment.NewLine & "Adds to 16 colours support to the Display Driver" & Environment.NewLine & Environment.NewLine & ManHeader(1) + Console.BadCommand = False + End If + Case "romdriver" + If Strings.AvailableFeature(16) = "0" Then + ManHeader(0) = "Terminal Read-Only Memory Driver" + ManHeader(1) = "90 CP" + Console.TextBox1.Text = Console.TextBox1.Text & Environment.NewLine & ManHeader(0) & Environment.NewLine & Environment.NewLine & "ShiftOS Read-Only Memory support for ShiftOS such as writing and reading permanent memory such as HDD, SDD, etc." & Environment.NewLine & Environment.NewLine & ManHeader(1) + Console.BadCommand = False + End If + Case "textpad" + If Strings.AvailableFeature(17) = "0" Then + ManHeader(0) = "TextPad" + ManHeader(1) = "100 CP" + Console.TextBox1.Text = Console.TextBox1.Text & Environment.NewLine & ManHeader(0) & Environment.NewLine & Environment.NewLine & "A simple text-editor for ShiftOS" & Environment.NewLine & Environment.NewLine & ManHeader(1) + Console.BadCommand = False + End If + Case "shiftkey" + If Strings.AvailableFeature(18) = "0" Then + ManHeader(0) = "ShiftKey" + ManHeader(1) = "45 CP" + Console.TextBox1.Text = Console.TextBox1.Text & Environment.NewLine & ManHeader(0) & Environment.NewLine & Environment.NewLine & "Recall the previous command on terminal" & Environment.NewLine & Environment.NewLine & ManHeader(1) + Console.BadCommand = False + End If + Case "username" + If Strings.AvailableFeature(19) = "0" Then + ManHeader(0) = "Custom Username" + ManHeader(1) = "15 CP" + Console.TextBox1.Text = Console.TextBox1.Text & Environment.NewLine & ManHeader(0) & Environment.NewLine & Environment.NewLine & "Set custom username for ShfitOS" & Environment.NewLine & Environment.NewLine & ManHeader(1) + Console.BadCommand = False + End If + Case "hostname" + If Strings.AvailableFeature(20) = "0" Then + ManHeader(0) = "Custom Hostname" + ManHeader(1) = "15 CP" + Console.TextBox1.Text = Console.TextBox1.Text & Environment.NewLine & ManHeader(0) & Environment.NewLine & Environment.NewLine & "Set custom hostname/computer name for ShfitOS" & Environment.NewLine & Environment.NewLine & ManHeader(1) + Console.BadCommand = False + End If + Case "rev" + If Strings.AvailableFeature(21) = "0" Then + ManHeader(0) = "Reverse String" + ManHeader(1) = "30 CP" + Console.TextBox1.Text = Console.TextBox1.Text & Environment.NewLine & ManHeader(0) & Environment.NewLine & Environment.NewLine & "Reverse any text you entered in the terminal" & Environment.NewLine & Environment.NewLine & ManHeader(1) + Console.BadCommand = False + End If + Case "cowsay" + If Strings.AvailableFeature(22) = "0" Then + ManHeader(0) = "Cowsay" + ManHeader(1) = "50 CP" + Console.TextBox1.Text = Console.TextBox1.Text & Environment.NewLine & ManHeader(0) & Environment.NewLine & Environment.NewLine & "Make the ASCII cow say anything you want to" & Environment.NewLine & Environment.NewLine & ManHeader(1) + Console.BadCommand = False + End If + Case "hhmm" + If Strings.AvailableFeature(23) = "0" Then + ManHeader(0) = "Time by Hours and Minutes" + ManHeader(1) = "50 CP" + Console.TextBox1.Text = Console.TextBox1.Text & Environment.NewLine & ManHeader(0) & Environment.NewLine & Environment.NewLine & "Shows time in Hours and Minutes format" & Environment.NewLine & Environment.NewLine & ManHeader(1) + Console.BadCommand = False + End If + Case "date" + If Strings.AvailableFeature(24) = "0" Then + ManHeader(0) = "Date command" + ManHeader(1) = "70 CP" + NewLine(ManHeader(0)) + NewLine(Nothing) + NewLine("Displays date in days format since first day of the year") + NewLine(Nothing) + NewLine(ManHeader(1)) + Console.BadCommand = False + End If + Case "woy" + If Strings.AvailableFeature(25) = "0" Then + ManHeader(0) = "Date by week of year" + ManHeader(1) = "75 CP" + NewLine(ManHeader(0)) + NewLine(Nothing) + NewLine("Displays date in week format since first week of the year") + NewLine(Nothing) + NewLine(ManHeader(1)) + Console.BadCommand = False + End If + Case "moy" + If Strings.AvailableFeature(26) = "0" Then + ManHeader(0) = "Date by month of year" + ManHeader(1) = "80 CP" + NewLine(ManHeader(0)) + NewLine(Nothing) + NewLine("Displays date in month format since first month of the year") + NewLine(Nothing) + NewLine(ManHeader(1)) + Console.BadCommand = False + End If + Case "year" + If Strings.AvailableFeature(27) = "0" Then + ManHeader(0) = "Date by year" + ManHeader(1) = "85 CP" + NewLine(ManHeader(0)) + NewLine(Nothing) + NewLine("Displays date in year format") + NewLine(Nothing) + NewLine(ManHeader(1)) + Console.BadCommand = False + End If + Case "mmyyyy" + If Strings.AvailableFeature(28) = "0" Then + ManHeader(0) = "Date by month and year" + ManHeader(1) = "90 CP" + NewLine(ManHeader(0)) + NewLine(Nothing) + NewLine("Displays date in month and year format") + NewLine(Nothing) + NewLine(ManHeader(1)) + Console.BadCommand = False + End If + Case "generaldate" + If Strings.AvailableFeature(29) = "0" Then + ManHeader(0) = "Date by general format" + ManHeader(1) = "95 CP" + NewLine(ManHeader(0)) + NewLine(Nothing) + NewLine("Displays date in DD/MM/YYYY format") + NewLine(Nothing) + NewLine(ManHeader(1)) + Console.BadCommand = False + End If + Case "batchscript" + If Strings.AvailableFeature(30) = "0" Then + ManHeader(0) = "ShiftOS Batch Script Support" + ManHeader(1) = "100 CP" + NewLine(ManHeader(0)) + NewLine(Nothing) + NewLine("Adds the supports for ShiftOS Batch Script") + NewLine(Nothing) + NewLine(ManHeader(1)) + Console.BadCommand = False + End If + Case "clipboard" + If Strings.AvailableFeature(31) = "0" Then + ManHeader(0) = "Clipboard Support" + ManHeader(1) = "100 CP" + NewLine(ManHeader(0)) + NewLine(Nothing) + NewLine("Adds the supports for clipboard") + NewLine(Nothing) + NewLine(ManHeader(1)) + Console.BadCommand = False + End If + Case Else + Console.BadCommand = False + Console.TextBox1.Text = Console.TextBox1.Text & Environment.NewLine & "Shiftorium: Bad command or not available" + End Select + End Sub + + Public Sub Shiftorium_DetectInstallFeatures() + NewLine("Installing feature...") + Select Case prompt + Case "man" + Shiftorium_InstallFeatures(True, "man", 0, 10) + Console.BadCommand = False + Case "clear" + Shiftorium_InstallFeatures(True, "clear", 1, 20) + Console.BadCommand = False + Case "print" + Shiftorium_InstallFeatures(True, "print", 2, 25) + Console.BadCommand = False + Case "termdspdrv" + Shiftorium_InstallFeatures(True, "termdspdrv", 3, 40) + Console.BadCommand = False + Case "infobar" + Shiftorium_InstallFeatures(True, "infobar", 4, 50) + Console.BadCommand = False + Case "stime" + Shiftorium_InstallFeatures(True, "stime", 5, 10) + Console.BadCommand = False + Case "mtime" + Shiftorium_InstallFeatures(True, "mtime", 6, 20) + Console.BadCommand = False + Case "htime" + Shiftorium_InstallFeatures(True, "htime", 7, 30) + Console.BadCommand = False + Case "shiftfetch" + Shiftorium_InstallFeatures(True, "shiftfetch", 8, 55) + Console.BadCommand = False + Case "bc" + Shiftorium_InstallFeatures(True, "bc", 9, 55) + Console.BadCommand = False + Case "2bitcolor" + Shiftorium_InstallFeatures(True, "2bitcolor", 10, 60) + Console.BadCommand = False + Case "key" + Shiftorium_InstallFeatures(True, "key", 11, 5) + Console.BadCommand = False + Case "pmam" + Shiftorium_InstallFeatures(True, "pmam", 12, 40) + Console.BadCommand = False + Case "rgb" + Shiftorium_InstallFeatures(True, "rgb", 13, 70) + Console.BadCommand = False + Case "rgb2" + Shiftorium_InstallFeatures(True, "rgb2", 14, 75) + Console.BadCommand = False + Case "4bitcolor" + Shiftorium_InstallFeatures(True, "4bitcolor", 15, 80) + Console.BadCommand = False + Case "romdriver" + Shiftorium_InstallFeatures(True, "romdriver", 16, 90) + Console.BadCommand = False + Case "textpad" + Shiftorium_InstallFeatures(True, "textpad", 17, 100) + Console.BadCommand = False + Case "shiftkey" + Shiftorium_InstallFeatures(True, "shiftkey", 18, 45) + Console.BadCommand = False + Case "username" + Shiftorium_InstallFeatures(True, "username", 19, 15) + Console.BadCommand = False + Case "hostname" + Shiftorium_InstallFeatures(True, "hostname", 20, 15) + Console.BadCommand = False + Case "rev" + Shiftorium_InstallFeatures(True, "rev", 21, 30) + Console.BadCommand = False + Case "cowsay" + Shiftorium_InstallFeatures(True, "cowsay", 22, 50) + Console.BadCommand = False + Case "hhmm" + Shiftorium_InstallFeatures(True, "hhmm", 23, 50) + Console.BadCommand = False + Case "date" + Shiftorium_InstallFeatures(True, "date", 24, 70) + Console.BadCommand = False + Case "woy" + Shiftorium_InstallFeatures(True, "woy", 25, 75) + Console.BadCommand = False + Case "moy" + Shiftorium_InstallFeatures(True, "moy", 26, 80) + Console.BadCommand = False + Case "year" + Shiftorium_InstallFeatures(True, "year", 27, 85) + Console.BadCommand = False + Case "mmyyyy" + Shiftorium_InstallFeatures(True, "mmyyyy", 28, 90) + Console.BadCommand = False + Case "generaldate" + Shiftorium_InstallFeatures(True, "generaldate", 29, 95) + Console.BadCommand = False + Case "batchscript" + Shiftorium_InstallFeatures(True, "batchscript", 30, 100) + Console.BadCommand = False + Case "clipboard" + Shiftorium_InstallFeatures(True, "clipboard", 31, 100) + Console.BadCommand = False + Case Else + Console.BadCommand = False + NewLine("Shiftorium: Bad command or not available") + End Select + End Sub + + Public Sub Shiftorium_InstallFeatures(IsCLI As Boolean, Feature As String, FeatureRow As Integer, Codepoint As Integer) + 'Import the current CP as an Integer + Dim TempCP As Integer = Convert.ToInt32(Strings.ComputerInfo(2)) + 'See what feature that are going to be installed + Select Case Strings.AvailableFeature(FeatureRow) + Case "0" + If TempCP >= Codepoint Then + Dim success As Boolean = False + Select Case Feature + Case "man" + Strings.AvailableFeature(0) = "1" + Strings.AvailableFeature(19) = "0" + Strings.AvailableFeature(20) = "0" + success = True + Case "clear" + Strings.AvailableFeature(1) = "1" + Strings.AvailableFeature(2) = "0" + Strings.AvailableFeature(5) = "0" + Strings.AvailableFeature(9) = "0" + success = True + Case "print" + Strings.AvailableFeature(2) = "1" + Strings.AvailableFeature(3) = "0" + Strings.AvailableFeature(18) = "0" + Strings.AvailableFeature(21) = "0" + success = True + Case "termdspdrv" + Strings.AvailableFeature(3) = "1" + Strings.AvailableFeature(4) = "0" + Strings.AvailableFeature(8) = "0" + Strings.AvailableFeature(10) = "0" + success = True + Case "infobar" + Strings.AvailableFeature(4) = "1" + success = True + Case "stime" + Strings.AvailableFeature(5) = "1" + Strings.AvailableFeature(6) = "0" + success = True + Case "mtime" + Strings.AvailableFeature(5) = "3" + Strings.AvailableFeature(6) = "1" + Strings.AvailableFeature(7) = "0" + success = True + Case "htime" + Strings.AvailableFeature(6) = "3" + Strings.AvailableFeature(7) = "1" + Strings.AvailableFeature(12) = "0" + success = True + Case "shiftfetch" + Strings.AvailableFeature(8) = "1" + success = True + Case "bc" + Strings.AvailableFeature(9) = "1" + success = True + Case "2bitcolor" + Strings.AvailableFeature(10) = "1" + Strings.AvailableFeature(13) = "0" + success = True + Case "key" + Strings.AvailableFeature(11) = "1" + Strings.AvailableFeature(0) = "0" + Strings.AvailableFeature(1) = "0" + success = True + Case "pmam" + Strings.AvailableFeature(7) = "3" + Strings.AvailableFeature(12) = "1" + Strings.AvailableFeature(23) = "0" + success = True + Case "rgb" + Strings.AvailableFeature(13) = "1" + Strings.AvailableFeature(14) = "0" + success = True + Case "rgb2" + Strings.AvailableFeature(14) = "1" + Strings.AvailableFeature(15) = "0" + success = True + Case "4bitcolor" + Strings.AvailableFeature(15) = "1" + Strings.AvailableFeature(16) = "0" + success = True + Case "romdriver" + Strings.AvailableFeature(16) = "1" + Strings.AvailableFeature(17) = "0" + success = True + Case "textpad" + Strings.AvailableFeature(17) = "1" + Strings.AvailableFeature(30) = "0" + Strings.AvailableFeature(31) = "0" + success = True + Case "shiftkey" + Strings.AvailableFeature(18) = "1" + success = True + Case "username" + Strings.AvailableFeature(19) = "1" + success = True + Case "hostname" + Strings.AvailableFeature(20) = "1" + success = True + Case "rev" + Strings.AvailableFeature(21) = "1" + Strings.AvailableFeature(22) = "0" + success = True + Case "cowsay" + Strings.AvailableFeature(22) = "1" + success = True + Case "hhmm" + Strings.AvailableFeature(12) = "3" + Strings.AvailableFeature(23) = "1" + Strings.AvailableFeature(24) = "0" + success = True + Case "date" + Strings.AvailableFeature(24) = "1" + Strings.AvailableFeature(25) = "0" + success = True + Case "woy" + Strings.AvailableFeature(24) = "3" + Strings.AvailableFeature(25) = "1" + Strings.AvailableFeature(26) = "0" + success = True + Case "moy" + Strings.AvailableFeature(25) = "3" + Strings.AvailableFeature(26) = "1" + Strings.AvailableFeature(27) = "0" + success = True + Case "year" + Strings.AvailableFeature(26) = "3" + Strings.AvailableFeature(27) = "1" + Strings.AvailableFeature(28) = "0" + success = True + Case "mmyyyy" + Strings.AvailableFeature(27) = "3" + Strings.AvailableFeature(28) = "1" + Strings.AvailableFeature(29) = "0" + success = True + Case "generaldate" + Strings.AvailableFeature(28) = "3" + Strings.AvailableFeature(29) = "1" + success = True + Case "batchscript" + Strings.AvailableFeature(30) = "1" + success = True + Case "clipboard" + Strings.AvailableFeature(31) = "1" + success = True + End Select + If success = False Then + If IsCLI = True Then + NewLine("Shiftorium: Invalid command or feature already installed") + End If + Else + 'It will deduct the current codepoint to the modified codepoint and exporting it back to ComputerInfo(2) + Strings.ComputerInfo(4) = Strings.ComputerInfo(4) + 1 + TempCP = TempCP - Codepoint + Strings.ComputerInfo(2) = Convert.ToString(TempCP) + If IsCLI = True Then + NewLine("Feature has been install succesfully") + End If + End If + Else + If IsCLI = True Then + NewLine("Shiftorium: Insufficent Codepoint") + End If + End If + Case "1" + If IsCLI = True Then + NewLine("Shiftorium: Feature has already been installed") + End If + Case "2" + If IsCLI = True Then + NewLine("Shiftorium: Feature is not available") + End If + Case "3" + If IsCLI = True Then + NewLine("Shiftorium: Feature is already upgraded to a newer one") + End If + End Select + End Sub +End Module diff --git a/ShiftOS-TheRevival/Functions/InGame/Strings.vb b/ShiftOS-TheRevival/Functions/InGame/Strings.vb deleted file mode 100644 index 0bbada4..0000000 --- a/ShiftOS-TheRevival/Functions/InGame/Strings.vb +++ /dev/null @@ -1,118 +0,0 @@ -Public Class Strings - Public Shared OSInfo() As String - Public Shared ComputerInfo(6) As String - Public Shared IsFree As Boolean - Public Shared OnceInfo(8) As String - Public Shared AvailableFeature(31) As String - Public Shared CLIInterpreter As String - Public Shared SaveFile As String - Public Shared Achievement As String - - 'STRING CATEGORIZATION WRITING RULES! - 'THIS IS IN ORDER TO REMAIN COMPATIBLE WITH OLDER VERSIONS! - ' - 'General string : - '(Row Number) = Function/Subject (default value : default) - ' - 'Each have to placed in numerical order - 'If there's moved strings for newer version, example: - '0 = Computer Name (0.1) => OS Version (0.2) => Root Location (0.3), etc. - 'If there's removed strings for newer version, example: - '69 = Secret Easter Egg (removed in 0.420) - 'If there's repurposed strings for newer version after removed, example: - '5 = FreeRoam enabled? (removed in 0.4) => Story Mode State - ' - 'ALWAYS WRITE THE NOTES IN COMMENTS, THIS CLASS ONLY IS FOR STORING STRINGS AND DEPLOYING STRINGS TO DISK - - 'OSInfo Strings: - '0 = OSVersion (default : dependant) - ' - 'OnceInfo Strings: - '0 = IsRoot? (0.1) (default : No) - '1 = RootDirectory (0.2.3) (default : Environment.SpecialDirectories.ApplicationData & "\ShiftOS\ShiftFS\") - '2 = Infobar Boolean (0.2.3) (default : True) - '3 = Color for Terminal (0.2.3) (default : 0F) => moved to ComputerInfo(5) - '4 = RootDirectoryString (0.2.3) (default : !) - '5 = Terminal TrackPos (0.2.3) (default : 0) - '6 = GameMode (0.2.3) (dependant) - '7 = MaxWidth (0.2.4) (depentant) - '8 = MaxHeight (0.2.4) (depentant) - ' - 'ComputerInfo Strings: - '0 = Computer Name (0.1) (default : shiftos) - '1 = Username (0.1) (default : user) - '2 = Codepoint (0.2) (default : 0) - '3 = Story Chapter (0.2) (default : 0 for New Game) - '4 = Installed Packages (0.2.3) (default : 0 for New Game) - '5 = Color for Terminal (0.2.4) (default : 0F) - '6 = Color for Infobar (0.2.4) (default : F0) - ' - 'AvailableFeature (Default is defined on the Story Mode, Free Mode automatically assigns every available feature to 1, Unavailable in the Shiftorium assigned as 2, Upgraded assigned as 3) Strings: - '0 = MAN command [Manual on each command] (0.2) (default : 0) - '1 = CLEAR command [Clearing the screen] (0.2) (default : 0) - '2 = PRINT command [Printing a string] (0.2.2) (default : 0) - '3 = Terminal Display Driver [Dependencies for advanced terminal applications] (0.2.2) (default : 0) - '4 = Terminal InfoBar [A panel bar at the bottom of the terminal to show 'Time', 'User Session', 'Codepoint', 'Program running'] (0.2.2) (default : 0) - '5 = Time by Second [Showing time in seconds form since midnight] (0.2.2) (default : 0) - '6 = Time by Minutes [Showing time in minutes form since midnight] (0.2.2) (default : 0) - '7 = Time by Hours [Showing time in hours form since midnight] (0.2.2) (default : 0) - '8 = Shiftfetch [ShiftOS port of Neofetch, A command-line system information tool] (0.2.3) (default : 0) - '9 = bc [Basic Calculator for ShiftOS] (0.2.3) (default : 0) - '10 = 2-bit Color Display [Adds Dark Gray and Light Gray support to the Display Driver] (0.2.3) (default : 0) - '11 = ShiftOS Key [A key to unlock advanced features on ShiftOS] (0.2.3) (default : 0) - '12 = Time by PM and AM [Showing time in hours form since midnight] (0.2.3) (default : 0) - '13 = Red, Green, Blue [Adds Red, Green, and Blue support to the Display Driver] (0.2.3) (default : 0) - '14 = RGB Variant [Adds lighter or darker variant of Red, Green, and Blue] (0.2.3) (default : 0) - '15 = 4-bit Color Display [Adds to 16 colours support to the Display Driver] (0.2.3) (default : 0) - '16 = Terminal Read-Only Memory Driver [ShiftOS Read-Only Memory support for HDD, SSD, etc.] (0.2.4) (default : 0) - '17 = TextPad [Notepad] (0.2.4) (default : 0) - '18 = ShiftKey [DOSKey for ShiftOS] (0.2.4) (default : 0) - '19 = Custom Username [Custom username for ShiftOS] (0.2.4) (default : 0) - '20 = Custom Hostname [Custom hostname for ShiftOS] (0.2.4) (default : 0) - '21 = Reverse String [Reverse a text] (0.2.4) (default : 0) - '22 = Cowsay [Cowsay] (0.2.4) (default : 0) - '23 = Time by Hours and Minutes [Shows time in Hours and Minutes format] (0.2.5) (default : 0) - '24 = Date command [Shows date in days since first day of the year format] (0.2.5) (default : 0) - '25 = Date by week [Shows date in weeks since first week of the year format] (0.2.5) (default : 0) - '26 = Date by month [Shows date in months since first month of the year format] (0.2.5) (default : 0) - '27 = Date by year [Shows date in year format] (0.2.5) (default : 0) - '28 = Date by month and year [Shows date in MM/YYYY format] (0.2.5) (default : 0) - '29 = Date by general [Shows date in general DD/MM/YYYY format] (0.2.5) (default : 0) - '30 = Batch-file support for ShiftOS [Gives execution support for ShiftOS Script File (.scr)] (0.2.5) (default : 0) - '31 = Clipboard support for ShiftOS [Gives clipboard support for copy-pasting in ShiftOS] (0.2.6) (default : 0) - ' - 'Features bought hierarchy : - 'ShiftOS Key (KEY) (5 CP) - '>ShiftOS Help Manual (MAN) (10 CP) - '>>Custom Username (USERNAME) (15 CP) - '>>Custom Hostname (HOSTNAME) (15 CP) - '>Terminal Clear (CLEAR) (20 CP) - '>>Terminal Print (PRINT) (25 CP) - '>>>Reverse String command (REV) (30 CP) - '>>>>Cowsay (50 CP) - '>>>>Fortune command (55 CP) - '>>>ShiftKey (ShOSKey) (45 CP) - '>>>Terminal Display Driver (TERMDSPDRV) (40 CP) - '>>>>Terminal InfoBar (INFOBAR) (50 CP) - '>>>>Shiftfetch (SHIFTFETCH) (55 CP) - '>>>>2-bit Color Display (2BITCOLOR) (60 CP) - '>>>>>Red, Green, Blue (rgb) (70 CP) - '>>>>>>RGB Variant (rgb2) (75 CP) - '>>>>>>>4-bit Color Display (4BITCOLOR) (80 CP) - '>>>>>>>>Terminal Read-Only Memory Driver (ROMDRIVER, DIR, MKDIR, RMDIR, CD, PWD) (90 CP) - '>>>>>>>>>TextPad (100 CP) - '>>>>>>>>>>Clipboard support (CLIPBOARD) (100 CP) - '>>>>>>>>>>ShiftOS Batch Script Support (BATCHSCRIPT) (100 CP) - '>>Basic Calculator (BC) (55 CP) - '>>Time by Seconds (TIME, STIME) (10 CP) - '>>>Time by Minutes (TIME, MTIME) (20 CP) - '>>>>Time by Hours (Time, HTIME) (30 CP) - '>>>>>PM and AM (Time, PMAM (40 CP)) - '>>>>>>Time by Hours and Minutes (Time, HHMM (50 CP)) - '>>>>>>>Date command (DATE (70 CP)) - '>>>>>>>>Date by week (DATE, WOY (75 CP)) - '>>>>>>>>>Date by month (DATE, MOY (80 CP)) - '>>>>>>>>>>Date by year (DATE, YEAR (85 CP)) - '>>>>>>>>>>>Date by month and year (DATE, MMYYYY (90 CP)) - '>>>>>>>>>>>>Date by general (DATE, GENERALDATE (95 CP)) -End Class diff --git a/ShiftOS-TheRevival/Functions/InGame/SystemManager/CodepointSystem.vb b/ShiftOS-TheRevival/Functions/InGame/SystemManager/CodepointSystem.vb new file mode 100644 index 0000000..6a76a28 --- /dev/null +++ b/ShiftOS-TheRevival/Functions/InGame/SystemManager/CodepointSystem.vb @@ -0,0 +1,11 @@ +Module CodepointSystem + Public Sub ChangeCP(Addition As Boolean, NeededCP As Integer) + Dim TempCP As Integer = Convert.ToInt32(Strings.ComputerInfo(2)) + If Addition = True Then + TempCP = TempCP + NeededCP + Else + TempCP = TempCP - NeededCP + End If + Strings.ComputerInfo(2) = Convert.ToString(TempCP) + End Sub +End Module diff --git a/ShiftOS-TheRevival/Functions/InGame/SystemManager/ColorSystem.vb b/ShiftOS-TheRevival/Functions/InGame/SystemManager/ColorSystem.vb new file mode 100644 index 0000000..80f1c8f --- /dev/null +++ b/ShiftOS-TheRevival/Functions/InGame/SystemManager/ColorSystem.vb @@ -0,0 +1,165 @@ +Module ColorSystem + 'GUIDE to COLORS in TERMINAL + 'Using the same Hexadecimal numbering as what Command Prompt used to: + '0 = Black 8 = Gray + '1 = Blue 9 = Light Blue + '2 = Green A = Light Green + '3 = Aqua B = Light Aqua + '4 = Red C = Light Red + '5 = Purple D = Light Purple + '6 = Yellow E = Yellow + '7 = Dark Gray F = White + Public BgColor As Color + Public FgColor As Color + + Public Sub GetColor(App As String, Bg As String, Fg As String) + Select Case App + Case "terminal" + BgColor = Color.Black + FgColor = Color.White + Case "infobar" + BgColor = Color.White + FgColor = Color.Black + End Select + If Bg = Fg Then + NewLine("Background and Foreground Color cannot be same!") + Else + If Strings.AvailableFeature(10) = "1" Then + Select Case Bg + Case "0" + BgColor = Color.Black + Case "7" + BgColor = Color.Silver + Case "8" + BgColor = Color.Gray + Case "f" + BgColor = Color.White + Case "2", "9", "c" + If Strings.AvailableFeature(13) = "1" Then + Select Case Bg + Case "2" + BgColor = Color.Green + Case "9" + BgColor = Color.Blue + Case "c" + BgColor = Color.Red + End Select + Else + NewLine("One or two colors you selected is not available.") + End If + Case "1", "4", "a" + If Strings.AvailableFeature(14) = "1" Then + Select Case Bg + Case "1" + BgColor = Color.Navy + Case "4" + BgColor = Color.Maroon + Case "a" + BgColor = Color.Lime + End Select + Else + NewLine("One or two colors you selected is not available.") + End If + Case "3", "5", "6", "b", "d", "e" + If Strings.AvailableFeature(15) = "1" Then + Select Case Bg + Case "3" + BgColor = Color.Cyan + Case "5" + BgColor = Color.Magenta + Case "6" + BgColor = Color.Brown + Case "b" + BgColor = Color.Aqua + Case "d" + BgColor = Color.Fuchsia + Case "e" + BgColor = Color.Yellow + End Select + Else + NewLine("One or two colors you selected is not available.") + End If + Case Else + BgColor = Color.Black + End Select + Select Case Fg + Case "0" + FgColor = Color.Black + Case "7" + FgColor = Color.Silver + Case "8" + FgColor = Color.Gray + Case "f" + FgColor = Color.White + Case "2", "9", "c" + If Strings.AvailableFeature(13) = "1" Then + Select Case Fg + Case "2" + FgColor = Color.Green + Case "9" + FgColor = Color.Blue + Case "c" + FgColor = Color.Red + End Select + Else + NewLine("One or two colors you selected is not available.") + End If + Case "1", "4", "a" + If Strings.AvailableFeature(14) = "1" Then + Select Case Fg + Case "1" + FgColor = Color.Navy + Case "4" + FgColor = Color.Maroon + Case "a" + FgColor = Color.Lime + End Select + Else + NewLine("One or two colors you selected is not available.") + End If + Case "3", "5", "6", "b", "d", "e" + If Strings.AvailableFeature(15) = "1" Then + Select Case Fg + Case "3" + FgColor = Color.Cyan + Case "5" + FgColor = Color.Magenta + Case "6" + FgColor = Color.Brown + Case "b" + FgColor = Color.Aqua + Case "d" + FgColor = Color.Fuchsia + Case "e" + FgColor = Color.Yellow + End Select + Else + NewLine("One or two colors you selected is not available.") + End If + Case Else + FgColor = Color.White + End Select + Else + NewLine("Color is not supported for 1-bit Color Display") + Select Case App + Case "terminal" + BgColor = Color.Black + FgColor = Color.White + Case "infobar" + BgColor = Color.White + FgColor = Color.Black + End Select + End If + End If + Select Case App + Case "infobar" + Console.InfoBar.BackColor = BgColor + Console.InfoBar.ForeColor = FgColor + Strings.ComputerInfo(6) = Bg & Fg + Case "terminal" + Console.TextBox1.BackColor = BgColor + Console.TextBox1.ForeColor = FgColor + Strings.ComputerInfo(5) = Bg & Fg + End Select + End Sub +End Module diff --git a/ShiftOS-TheRevival/Functions/InGame/SystemManager/Terminate.vb b/ShiftOS-TheRevival/Functions/InGame/SystemManager/Terminate.vb new file mode 100644 index 0000000..9654185 --- /dev/null +++ b/ShiftOS-TheRevival/Functions/InGame/SystemManager/Terminate.vb @@ -0,0 +1,15 @@ +Module Terminate + Public Sub TerminateShiftOS() + NewLine("Stopping the Window Manager...") + StopX() + Console_Full() + If Strings.OnceInfo(6) = "story" Then + NewLine("Saving game...") + SaveGame() + End If + Cursor.Show() + NewLine("Shutting down...") + ShiftOSMenu.Show() + Console.Close() + End Sub +End Module diff --git a/ShiftOS-TheRevival/Functions/InGame/Terminate.vb b/ShiftOS-TheRevival/Functions/InGame/Terminate.vb deleted file mode 100644 index 9654185..0000000 --- a/ShiftOS-TheRevival/Functions/InGame/Terminate.vb +++ /dev/null @@ -1,15 +0,0 @@ -Module Terminate - Public Sub TerminateShiftOS() - NewLine("Stopping the Window Manager...") - StopX() - Console_Full() - If Strings.OnceInfo(6) = "story" Then - NewLine("Saving game...") - SaveGame() - End If - Cursor.Show() - NewLine("Shutting down...") - ShiftOSMenu.Show() - Console.Close() - End Sub -End Module diff --git a/ShiftOS-TheRevival/MainForms/DesktopEnvironment/master/DesktopManager.vb b/ShiftOS-TheRevival/MainForms/DesktopEnvironment/master/DesktopManager.vb index 8250340..576c568 100644 --- a/ShiftOS-TheRevival/MainForms/DesktopEnvironment/master/DesktopManager.vb +++ b/ShiftOS-TheRevival/MainForms/DesktopEnvironment/master/DesktopManager.vb @@ -8,5 +8,6 @@ Public Sub StopX() Desktop.Close() + Console_Full() End Sub End Module diff --git a/ShiftOS-TheRevival/MainForms/ShiftOSMenu.Designer.vb b/ShiftOS-TheRevival/MainForms/ShiftOSMenu.Designer.vb index afb0dbc..41cce27 100644 --- a/ShiftOS-TheRevival/MainForms/ShiftOSMenu.Designer.vb +++ b/ShiftOS-TheRevival/MainForms/ShiftOSMenu.Designer.vb @@ -23,6 +23,7 @@ Partial Class ShiftOSMenu _ Private Sub InitializeComponent() Me.components = New System.ComponentModel.Container() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(ShiftOSMenu)) Me.Label1 = New System.Windows.Forms.Label() Me.Label2 = New System.Windows.Forms.Label() Me.btn_Aboot = New System.Windows.Forms.Button() @@ -190,10 +191,9 @@ Partial Class ShiftOSMenu Me.Controls.Add(Me.Label2) Me.Controls.Add(Me.Label1) Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle + Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon) Me.MaximizeBox = False Me.Name = "ShiftOSMenu" - Me.ShowIcon = False - Me.ShowInTaskbar = False Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen Me.Text = "Main Menu" CType(Me.Thumbnail, System.ComponentModel.ISupportInitialize).EndInit() diff --git a/ShiftOS-TheRevival/MainForms/ShiftOSMenu.resx b/ShiftOS-TheRevival/MainForms/ShiftOSMenu.resx index 44719a5..ba837ad 100644 --- a/ShiftOS-TheRevival/MainForms/ShiftOSMenu.resx +++ b/ShiftOS-TheRevival/MainForms/ShiftOSMenu.resx @@ -123,4 +123,292 @@ 180, 17 + + + + AAABAAEAQEAAAAEAIAAoQgAAFgAAACgAAABAAAAAgAAAAAEAIAAAAAAAAAAAAMQOAADEDgAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDAwIEBAQFRAQEBcREREXERERFxERERUMDAwIAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ODhMfHx8qMDAwPj09PVI+Pj5cRkZGZUlJSXJISEhzR0dHc0RE + RHNCQkJyPz8/ZTY2NlwyMjJSJiYmPhgYGCoNDQ0TAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeHh4bMzMzOkBAQFlNTU1wXFxch2hoaJtycnKvcXFxuXh4 + eMF6enrOeXl50Hd3d9B0dHTQcnJyzmxsbMFfX1+5XV1dr1BQUJtGRkaHOjo6cDExMVkkJCQ6FBQUGwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACMjIx9CQkJNXl5eeHFxcZd6enq1h4eHzJ6e + nveXl5f/j4+P/4iIiP+BgYH/fX19/3t7e/94eHj/dHR0/3Fxcf9xcXH/c3Nz/3R0dP92dnb/eXl592Nj + Y8xUVFS1S0tLlz4+PngsLCxNFxcXHwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAISEhH0VFRU1mZmZ8gICAqqWl + pdqoqKj/mpqa/4+Pj/+FhYX/e3t7/29vb/9lZWX/Xl5e/1paWv9aWlr/V1dX/1NTU/9TU1P/U1NT/1RU + VP9YWFj/XV1d/19fX/9jY2P/aWlp/29vb/9paWnaTk5Oqj09PXwqKipNFBQUHwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAREREJNjY2QWho + aHuEhISqsrKy4aysrP+bm5v/jY2N/3p6ev9paWn/XFxc/1NTU/9LS0v/RkZG/0FBQf9BQUH/QEBA/z8/ + P/89PT3/Ozs7/zo6Ov87Ozv/PT09/0BAQP9ERET/SEhI/1BQUP9VVVX/Wlpa/2FhYf9jY2PhTExMqjo6 + OnshISFBCQkJCQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAkJCQgW1tbZX9/f563t7fgsLCw/6Ghof+Ojo7/d3d3/2JiYv9SUVL/RkZG/0RERP9GRkb/SUlJ/09P + T/9TU1P/WFhY/1hYWP9YWFj/WFhY/1VVVf9SUVL/TExM/0RERP86Ojr/NDQ0/zQ0NP83Nzf/Ozs7/0JC + Qv9MTEz/VFRU/11dXf9eXl7gPz8/ni8vL2UVFRUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAA3Nzc3bGxsfaCgoMK7u7v/qqqq/5KSkv96enr/YWFh/01NTf9ERET/RkZG/01N + Tf9fX1//b29v/35+fv+Ojo7/lpaW/46Ojv+Ojo7/jo6O/46Ojv+Ojo7/k5OT/4yMjP9+fn7/b29v/1pa + Wv9GRkb/OTk5/zAwMP8vLy//MzMz/z4+Pv9HR0f/T09P/1dXV/9NTU3CNjY2fSEhITcAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA6Ojo+hISElMXFxeO5ubn/o6Oj/4aGhv9lZWX/T09P/0RE + RP9HR0f/V1dX/29vb/+JiYn/lJSU/5WVlf+Tk5P/jIyM/46Ojv+EhIT/hISE/4SEhP+EhIT/hYWF/4+P + j/+MjIz/k5OT/5aWlv+UlJT/i4uL/3BwcP9TU1P/PT09/zAwMP8rKyv/MjIy/zs7O/9FRUX/Tk5O/1dX + V+M9PT2UISEhPgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7Ozs+h4eHm87Ozv+6urr/nZ2d/3l5 + ef9XV1f/QUFB/0JCQv9XV1f/d3d3/5aWlv+Tk5P/jY2N/4SEhP97e3v/bGxs/15eXv9fX1//UlFS/1BQ + UP9QUFD/UFBQ/1NTU/9eXl7/X19f/29vb/9+fn7/hISE/42Njf+ZmZn/np6e/3l5ef9VVVX/ODg4/ykp + Kf8oKCj/MjIy/z09Pf9GRkb/V1dX/zs7O5sfHx8+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7Ozs+i4uLm8/P + z/+/v7//np6e/3Jycv9MTEz/Pz8//0tLS/9ra2v/lJSU/5ubm/+SkpL/e3t7/2hoaP9VVVX/KSkp/yEh + If8YGBj/ERER/xAQEP8ODg7/Dw8P/xQUFP8XFxf/HR0d/yQkJP8mJib/Kioq/09PT/9jY2P/fX19/5SU + lP+ioqL/np6e/3BwcP9JSUn/Kysr/yIiIv8rKyv/Nzc3/0FBQf9SUVL/Ozs7mx4eHj4AAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAA+Pj43jY2Nm9XV1f/BwcH/oKCg/29vb/9HR0f/Pj4+/1VVVf+BgYH/m5ub/4aGhv99fX3/ampq/zk5 + Of8qKir/Hx8f/xoaGv8TExP/DAwM/wUFBf8AAAD/AAAA/wAAAP8DAwP/CAgI/w8PD/8VFRX/HBwc/yIi + Iv8lJSX/KCgo/ysrK/9kZGT/gYGB/5KSkv+qqqr/jY2N/1ZWVv8vLy//Hx8f/yYmJv8zMzP/Pz8//1RU + VP89PT2bHx8fNwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAApKSkkj4+Pk9nZ2f/Gxsb/o6Oj/3BwcP9GRkb/PT09/1paWv+QkJD/m5ub/3l5 + ef9cXFz/ODg4/zk5Of8zMzP/LCws/yYmJv8dHR3/ExMT/wgICP8BAQH/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AgIC/w0NDf8VFRX/Hh4e/yQkJP8kJCT/JiYm/ykpKf9hYWH/jIyM/6emp/+jo6P/YWFh/zEx + Mf8dHR3/JCQk/zQ0NP9BQUH/WFhY/0BAQJMYGBgkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAe3t7geHh4f7Ozs7/rKys/3Z2dv9HR0f/PT09/1tb + W/+Pj4//mZmZ/21tbf9GRkb/Ojo6/0FBQf86Ojr/MzMz/ykpKf8jIyP/HBwc/xAQEP8BAQH/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wwMDP8bGxv/IyMj/yMjI/8kJCT/KCgo/0xM + TP99fX3/oqKi/6mpqf9lZWX/MTEx/x0dHf8lJSX/ODg4/0ZGRv9hYWH+Pj4+gQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVFRUTuPj4+vb29v/ubm5/39/ + f/9LS0v/Ozs7/1hYWP+Ojo7/mpqa/2lpaf80NDT/Ojo6/0FBQf8/Pz//NDQ0/yYmJv8bGxv/Dg4O/wIC + Av8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/xgY + GP8jIyP/IyMj/yMjI/8lJSX/KCgo/3BwcP+hoaH/qqqq/2VlZf8vLy//HR0d/ysrK/9AQED/UFBQ/2ho + aOssLCxOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKCgoE6ur + q6vk5OT/zMzM/5WVlf9UVFT/OTk5/1VVVf+Li4v/oKCg/3Z2dv80NDT/OTk5/zs7O/9AQED/NDQ0/yMj + I/8ODg7/AQEB/wAAAP8AAAD/AAAA/wEBAf8BAQH/AwMD/wAAAP8BAQH/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/EBAQ/yUlJf8iIiL/IyMj/yUlJf8mJib/bW1t/6Ghof+pqan/X19f/ygo + KP8hISH/MzMz/0lJSf9YWFj/T09PqxMTExMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAIKCgnDr6+v/3d3d/7Gxsf9paWn/Ozs7/0lJSf9+fn7/pKSk/4CAgP9AQED/MzMz/zAw + MP8yMjL/MzMz/x4eHv8HBwf/AAAA/wAAAP8AAAD/AAAA/zAwMP9mZmb/ZGRk/2JiYv9LS0v/Ly8v/xMT + E/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8RERH/KCgo/yIiIv8jIyP/JSUl/yYm + Jv9wcHD/sLCw/52dnf9PT0//IiIi/ygoKP9BQUH/VFRU/2hoaP89PT1wAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAACoqKhHs7OzQ7Ozs/8zMzP+JiYn/R0dH/z09Pf9qamr/p6an/5aW + lv9PT0//Ozs7/ykpKf8iIiL/IiIi/x4eHv8FBQX/AAAA/wAAAP8AAAD/QEBA/4KCgv+vr6//ubm5/7Ky + sv+qqqr/m5ub/4SEhP9bW1v/OTk5/wwMDP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/CAgI/xQU + FP8oKCj/IiIi/yMjI/8lJSX/Kioq/3p6ev+/v7//iIiI/zo6Ov8hISH/MzMz/01NTf9dXV3/ampq0BAQ + EBEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACHh4dq8/Pz/+Xl5f+xsbH/YmJi/zk5 + Of9UVFT/kpKS/7CwsP9paWn/RkZG/zExMf8bGxv/Dg4O/xUVFf8PDw//AwMD/wAAAP8GBgb/WFhY/4KC + gv+oqKj/y8vL/8zMzP/MzMz/zMzM/8zMzP/Nzc3/zMzM/6qqqv9eXl7/Hh4e/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wYGBv8UFBT/IiIi/ygoKP8iIiL/IyMj/yUlJf8rKyv/kpKS/8LCwv9paWn/KSkp/ygo + KP9ERET/XFxc/2tra/9CQkJqAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9fX1y/Ly + 8v/V1dX/jIyM/0VFRf8/Pz//cHBw/7CwsP+VlZX/UFBQ/zo6Ov8kJCT/DAwM/wUFBf8dHR3/ISEh/xoa + Gv8WFhb/RERE/2RkZP+Li4v/sbGx/8vLy//Ly8v/zMzM/8nJyf/MzMz/zc3N/8zMzP/MzMz/zMzM/83N + zf89PT3/AAAA/wAAAP8AAAD/AAAA/wAAAP8CAgL/Ghoa/yMjI/8tLS3/JSUl/yIiIv8jIyP/JiYm/09P + T/+7u7v/mZmZ/0JCQv8hISH/Nzc3/1ZWVv9lZWX/c3NzywAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAWFhYO/j4+P/u7u7/u7u7/2ZmZv85OTn/U1NT/5CQkP+6urr/dnZ2/1JRUv89PT3/JSUl/xAQ + EP8UFBT/LS0t/zk5Of80NDT/RERE/2ZmZv+CgoL/oaGh/76+vv/Ly8v/ZGRk/0FBQf8tLS3/U1NT/2Fh + Yf+ioqL/zs7O/8zMzP/MzMz/zMzM/7m5uf8AAAD/AAAA/wAAAP8AAAD/AQEB/x0dHf8tLS3/Ly8v/zAw + MP8jIyP/IiIi/yUlJf8pKSn/f39//8jIyP9tbW3/KSkp/yoqKv9NTU3/ZGRk/3d3d/8wMDA7AAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAALe3t5j6+vr/4+Pj/5ycnP9MTEz/OTk5/2hoaP+vr6//tra2/29v + b/9VVVX/QEBA/yoqKv8jIyP/JiYm/0VFRf9TU1P/U1NT/2VlZf+EhIT/qKio/8fHx/97e3v/IyMj/wAA + AP8AAAD/AAAA/wAAAP8AAAD/Hh4e/2FhYf+zs7P/zc3N/8zMzP/MzMz/y8vL/wAAAP8AAAD/AAAA/wEB + Af8jIyP/Ojo6/z4+Pv87Ozv/Kysr/yMjI/8iIiL/JiYm/yoqKv/Jycn/l5eX/zs7O/8jIyP/QUFB/2Nj + Y/9vb2//YmJimAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD8+/z3+fn5/9PT0/9+fn7/Ozs7/0VF + Rf9+fn7/xcXF/6urq/92dnb/Wlpa/0dHR/80NDT/NjY2/zs7O/9OTk7/XFxc/2NjY/92dnb/oqKi/8nJ + yf+QkJD/RkZG/wICAv8AAAD/LS0t/15eXv9cXFz/aWlp/yYmJv8HBwf/VVVV/7Gxsf/MzMz/zMzM/8zM + zP/ExMT/AQEB/wAAAP8BAQH/KSkp/0hISP9TU1P/SUlJ/zY2Nv8lJSX/IiIi/yUlJf8oKCj/k5OT/7m5 + uf9YWFj/IyMj/zY2Nv9cXFz/cHBw/4uLi/cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWFhYD//////f3 + 9/+/v7//ZGRk/zg4OP9TU1P/lJSU/8bGxv+cnJz/enp6/2JiYv9OTk7/R0dH/05OTv9WVlb/XV1d/11d + Xf9kZGT/c3Nz/6mpqf+ysrL/bW1t/yQkJP8DAwP/BgYG/w4ODv8GBgb/MDAw/0xMTP9zc3P/RUVF/wwM + DP9tbW3/ycnJ/8zMzP/MzMz/zc3N/29vb/8AAAD/AAAA/zExMf9UVFT/ZWVl/2JiYv9JSUn/Ly8v/yQk + JP8jIyP/KCgo/z8/P//V1dX/eXl5/ywsLP8sLCz/VlZW/29vb/+CgoL/CAgIAwAAAAAAAAAAAAAAAAAA + AAAAAAAAdHR0PP/////v7+//ra2t/1JRUv86Ojr/X19f/6+vr/+7u7v/nZ2d/4CAgP9paWn/V1dX/15e + Xv9paWn/d3d3/3R0dP90dHT/dHR0/3t7e/+NjY3/f39//zAwMP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8aGhr/NDQ0/6SkpP/MzMz/zMzM/83Nzf+cnJz/AAAA/wAAAP82Njb/YWFh/3l5 + ef9/f3//X19f/zk5Of8mJib/IyMj/yYmJv8pKSn/6Ojo/5mZmf85OTn/JiYm/1BQUP9wcHD/fX19/z09 + PTwAAAAAAAAAAAAAAAAAAAAAAAAAANLS0pf/////5+fn/5mZmf9GRkb/Pz8//2tra//IyMj/ubm5/6Wl + pf+JiYn/c3Nz/2lpaf94eHj/iIiI/5SUlP+UlJT/lZWV/5OTk/9+fn7/ZmZm/1VVVf8BAQH/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wcHB/+FhYX/zMzM/8zMzP/MzMz/qKio/z8/ + P/8FBQX/QEBA/2pqav+Ojo7/m5ub/3d3d/9HR0f/LCws/yMjI/8lJSX/KCgo/7a2tv+xsbH/S0tL/yQk + JP9ISEj/b29v/319ff96enqXAAAAAAAAAAAAAAAAAAAAAAAAAAD////r/////93d3f+Ghob/QEBA/0dH + R/92dnb/1NTU/7e3t/+lpaX/k5OT/4GBgf97e3v/iIiI/5qamv+hoaH/np6e/5qamv+MjIz/R0dH/0FB + Qf8oKCj/CQkJ/wEBAf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8BAQH/cXFx/8zM + zP/MzMz/zMzM/7S0tP9GRkb/ERER/0xMTP96enr/np6e/7Kysv+Li4v/WFhY/zY2Nv8mJib/JCQk/ygo + KP9qamr/wsLC/1hYWP8mJib/QkJC/21tbf9/f3//pKSk6wAAAAAAAAAAAAAAAAAAAAAAAAAA/f39//// + ///X19f/enp6/zs7O/9JSUn/enp6/87Ozv+2trb/pKSk/5qamv+SkpL/h4eH/4uLi/+ampr/m5ub/5aW + lv+UlJT/U1NT/x8fH/8sLCz/PT09/zo6Ov8sLCz/DAwM/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AQEB/2RkZP/MzMz/zMzM/8zMzP+0tLT/Ojo6/xwcHP9jY2P/iYmJ/7S0tP+9vb3/m5ub/2pq + av8+Pj7/KSkp/yQkJP8oKCj/Ly8v/8vLy/9lZWX/KCgo/z09Pf9tbW3/gYGB/6SkpP8AAAAAAAAAAAAA + AAAAAAAAAAAAAP/////+/v7/0tLS/3Jycv86Ojr/SEhI/319ff/CwsL/tra2/6SkpP+dnZ3/oaGh/5ub + m/+UlJT/m5ub/5ycnP+UlJT/hISE/y8vL/8BAQH/QEBA/2lpaf9ra2v/ZGRk/01NTf8kJCT/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wEBAf9qamr/zMzM/8zMzP/MzMz/j4+P/ykpKf80NDT/cHBw/6Cg + oP/IyMj/xMTE/6ioqP96enr/SUlJ/y0tLf8lJSX/KCgo/ywsLP/Q0ND/bGxs/ygoKP87Ozv/bW1t/4SE + hP+jo6P/AAAAAAAAAAAAAAAAAAAAAAAAAAD//////v7+/9DQ0P9xcXH/ODg4/0RERP99fX3/xMTE/7a2 + tv+kpKT/nZ2d/6SkpP+vr6//q6ur/6Ojo/+cnJz/np6e/3t7e/8hISH/Hh4e/3Fxcf+Wlpb/np6e/5mZ + mf+Li4v/d3d3/01NTf8BAQH/AAAA/wAAAP8AAAD/AAAA/wAAAP8lJSX/kJCQ/8zMzP/MzMz/zMzM/39/ + f/8NDQ3/RERE/4yMjP+6urr/y8vL/8fHx/+xsbH/h4eH/1JRUv8yMjL/JiYm/ygoKP8rKyv/0NDQ/29v + b/8pKSn/PT09/3BwcP+IiIj/p6an/wAAAAAAAAAAAAAAAAAAAAAAAAAA//////7+/v/Q0ND/cXFx/zg4 + OP9ERET/eHh4/8TExP+2trb/pKSk/52dnf+kpKT/tra2/7+/v/+7u7v/tra2/7u7u/96enr/MTEx/z8/ + P/+MjIz/wsLC/8vLy//Ly8v/y8vL/8zMzP/Jycn/wsLC/8jIyP9mZmb/MTEx/0BAQP9SUVL/goKC/83N + zf/MzMz/zMzM/6ioqP9FRUX/AAAA/1tbW/+oqKj/ycnJ/8vLy//Jycn/tra2/46Ojv9bW1v/Nzc3/yYm + Jv8oKCj/Kysr/9DQ0P9tbW3/Kioq/z8/P/9zc3P/jIyM/6mpqf8AAAAAAAAAAAAAAAAAAAAAAAAAAP// + ///+/v7/0tLS/3R0dP84ODj/RERE/3Jycv/BwcH/tra2/6SkpP+cnJz/o6Oj/7S0tP/CwsL/y8vL/8vL + y//MzMz/cnJy/xUVFf9aWlr/tLS0/8zMzP/AwMD/u7u7/8TExP/Ly8v/zc3N/8zMzP/MzMz/zMzM/8zM + zP/Ly8v/v7+//8zMzP/MzMz/zs7O/7Gxsf9tbW3/Hh4e/wAAAP9kZGT/s7Oz/8TExP/Nzc3/yMjI/7e3 + t/+SkpL/X19f/zo6Ov8pKSn/KCgo/y0tLf/Pz8//bGxs/ysrK/9BQUH/d3d3/4+Pj/+rq6v/AAAAAAAA + AAAAAAAAAAAAAAAAAAD////+/v7+/9bW1v96enr/PT09/0VFRf9ra2v/0tLS/7e3t/+jo6P/nJyc/6Gh + of+wsLD/wMDA/8nJyf/MzMz/xsbG/2pqav8TExP/ZmZm/8XFxf+ysrL/k5OT/4CAgP94eHj/d3d3/319 + ff+vr6//ycnJ/8/Pz//Nzc3/ycnJ/8bGxv/CwsL/t7e3/5qamv9vb2//MDAw/wAAAP8KCgr/e3t7/5mZ + mf+xsbH/wMDA/8fHx/+3t7f/k5OT/2JiYv89PT3/Kioq/ygoKP8xMTH/zMzM/2VlZf8rKyv/R0dH/3t7 + e/+Tk5P/r6+v/gAAAAAAAAAAAAAAAAAAAAAAAAAA////6P/////d3d3/h4eH/z8/P/9BQUH/X19f/8/P + z/+4uLj/p6an/5ubm/+dnZ3/rKys/729vf/IyMj/y8vL/8TExP9qamr/GBgY/2ZmZv/Hx8f/mpqa/3Bw + cP9VVVX/Pj4+/yUlJf8QEBD/AQEB/wAAAP8BAQH/Ly8v/1JRUv9lZWX/cHBw/2hoaP9XV1f/JCQk/wAA + AP8AAAD/MTEx/2xsbP+CgoL/l5eX/6qqqv+0tLT/sLCw/5CQkP9jY2P/Pj4+/ysrK/8oKCj/ampq/8HB + wf9aWlr/Kysr/09PT/+BgYH/lpaW/7Ozs+gAAAAAAAAAAAAAAAAAAAAAAAAAANLS0pf/////5+fn/5mZ + mf9FRUX/Ozs7/1RUVP+6urr/u7u7/6ioqP+bm5v/m5ub/6Wlpf+3t7f/xcXF/8vLy//FxcX/b29v/x8f + H/9jY2P/vb29/4yMjP9WVlb/LCws/w0NDf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8DAwP/FxcX/x8f + H/9OTk7/IyMj/wYGBv8AAAD/AAAA/z09Pf9YWFj/b29v/4GBgf+VlZX/oKCg/5ycnP+EhIT/YWFh/z8/ + P/8sLCz/KSkp/7Kysv+vr6//TExM/y0tLf9cXFz/jIyM/5eXl/+MjIyXAAAAAAAAAAAAAAAAAAAAAAAA + AABycnI5/////+/v7/+tra3/UlFS/zg4OP9ISEj/jIyM/7+/v/+tra3/nZ2d/5mZmf+hoaH/sLCw/7+/ + v//IyMj/ycnJ/3t7e/8qKir/W1tb/6qqqv+JiYn/T09P/xgYGP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP9TU1P/X19f/z8/P/8iIiL/CAgI/wgICP8rKyv/SUlJ/15eXv9wcHD/gYGB/4uL + i/+Hh4f/c3Nz/1dXV/8+Pj7/LS0t/ysrK//s7Oz/l5eX/zs7O/80NDT/ampq/5SUlP+goKD/RkZGOQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/////39/f/wcHB/2RkZP83Nzf/Pj4+/2tra//Gxsb/tLS0/6Oj + o/+ZmZn/m5ub/6ioqP+5ubn/xMTE/8vLy/+Li4v/PT09/0RERP+UlJT/mZmZ/1ZWVv8WFhb/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AgIC/zQ0NP+Pj4//nJyc/3Jycv9XV1f/Ozs7/yQkJP8PDw//Gxsb/zg4 + OP9OTk7/YmJi/29vb/92dnb/c3Nz/2RkZP9PT0//OTk5/ywsLP9ISEj/0NDQ/3d3d/8yMjL/QUFB/3p6 + ev+cnJz/p6an/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD////w+vr6/9XV1f+AgID/PT09/zg4 + OP9TU1P/r6+v/7m5uf+pqan/m5ub/5mZmf+goKD/sLCw/729vf/Gxsb/oaGh/1NTU/84ODj/enp6/76+ + vv9sbGz/Kysr/wEBAf8AAAD/AAAA/wAAAP8FBQX/MDAw/2JiYv+enp7/zMzM/6qqqv+Hh4f/ZmZm/1JR + Uv86Ojr/JSUl/x4eHv8sLCz/Pz8//1JRUv9eXl7/ZGRk/2FhYf9XV1f/RUVF/zMzM/8sLCz/jo6O/7S0 + tP9aWlr/Ly8v/1NTU/+Li4v/o6Oj/7Ozs/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAt7e3mP// + ///o6Oj/oaGh/0tLS/82Njb/QkJC/4KCgv/CwsL/sbGx/6Kiov+ZmZn/m5ub/6emp/+zs7P/wcHB/7Ky + sv9vb2//PT09/15eXv+ioqL/zc3N/2RkZP8eHh7/Ghoa/ygoKP83Nzf/XV1d/3d3d/+pqan/zc3N/83N + zf+4uLj/j4+P/1NTU/9QUFD/TExM/zk5Of8rKyv/MTEx/zk5Of9CQkL/Tk5O/1NTU/9SUVL/S0tL/zo6 + Ov8sLCz/PT09/8jIyP+Pj4//QEBA/zY2Nv9tbW3/mpqa/6qqqv+EhISYAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAF1dXTj/////8/Pz/8HBwf9ra2v/OTk5/zk5Of9VVVX/q6ur/7m5uf+oqKj/nZ2d/5mZ + mf+dnZ3/qamp/7i4uP/CwsL/jIyM/0xMTP8/Pz//fX19/7q6uv/MzMz/s7Oz/2ZmZv9oaGj/fX19/5mZ + mf+6urr/zc3N/8zMzP/BwcH/oKCg/2ZmZv9NTU3/SUlJ/0lJSf9ISEj/Ojo6/zg4OP8+Pj7/QEBA/0BA + QP9GRkb/RUVF/z8/P/8zMzP/Kysr/319ff+5ubn/aGho/zMzM/9LS0v/hISE/6emp/+0tLT/PT09OAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5eXlxv39/f/d3d3/lJSU/0tLS/83Nzf/Pz8//4CA + gP+7u7v/s7Oz/6SkpP+ampr/mZmZ/6Ghof+srKz/uLi4/6emp/9tbW3/Pj4+/1VVVf+QkJD/ycnJ/8zM + zP/MzMz/zMzM/8vLy//MzMz/wsLC/6Ghof+Pj4//hISE/3d3d/9NTU3/R0dH/0lJSf9FRUX/RUVF/0VF + Rf8+Pj7/Pz8//0FBQf8/Pz//Pz8//z4+Pv83Nzf/Kysr/1ZWVv+vr6//jY2N/0RERP84ODj/aGho/5yc + nP+vr6//oqKixgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAImJiWr/////8fHx/7u7 + u/9paWn/Ojo6/zc3N/9LS0v/mZmZ/729vf+tra3/oKCg/5qamv+ampr/oaGh/6ysrP+4uLj/jo6O/1ZW + Vv9AQED/X19f/5qamv/Hx8f/zMzM/8zMzP/MzMz/tra2/5qamv97e3v/YmJi/1paWv9VVVX/SUlJ/1RU + VP9hYWH/TU1N/z8/P/8+Pj7/Ojo6/0BAQP9AQED/QUFB/z4+Pv87Ozv/Ly8v/zY2Nv+MjIz/rKys/2Fh + Yf80NDT/Tk5O/4iIiP+srKz/ubm5/2RkZGoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAvLy8J6Ojozf39/f/c3Nz/lpaW/05OTv82Njb/ODg4/2NjY/+jo6P/ubm5/6qqqv+dnZ3/mZmZ/5qa + mv+hoaH/q6ur/7CwsP9+fn7/Tk5O/x8fH/9eXl7/jo6O/76+vv+7u7v/qqqq/5SUlP96enr/Xl5e/0RE + RP9BQUH/QkJC/2tra/94eHj/a2tr/1paWv9GRkb/OTk5/zY2Nv82Njb/QEBA/0BAQP9BQUH/NjY2/ykp + Kf9ra2v/uLi4/3l5ef8/Pz//PT09/21tbf+goKD/t7e3/6ioqM0aGhoJAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAIyMjHD////+8vLy/8LCwv93d3f/Pz8//zQ0NP89PT3/eHh4/6em + p/+3t7f/qKio/56env+ZmZn/mZmZ/6CgoP+oqKj/sLCw/3p6ev9ISEj/Ghoa/wEBAf8oKCj/aGho/3R0 + dP9paWn/c3Nz/1ZWVv9BQUH/PT09/11dXf+EhIT/jY2N/3d3d/9hYWH/T09P/z8/P/8zMzP/LS0t/zc3 + N/9BQUH/Ojo6/yIiIv9XV1f/nJyc/4iIiP9NTU3/NjY2/1paWv+SkpL/s7Oz/8TExP5oaGhwAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxMTEHurq6q/39/f/n5+f/qamp/2Ji + Yv89PT3/MzMz/z8/P/94eHj/p6an/7e3t/+pqan/oaGh/5qamv+ampr/nZ2d/6Ojo/+rq6v/m5ub/1NT + U/8pKSn/AQEB/wAAAP8UFBT/JiYm/z09Pf9MTEz/U1NT/11dXf+CgoL/lpaW/42Njf95eXn/ZWVl/1RU + VP9FRUX/Ojo6/zIyMv8xMTH/MDAw/xYWFv9JSUn/i4uL/46Ojv9WVlb/ODg4/0xMTP+BgYH/ra2t/7+/ + v/+Ojo6rGhoaBwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF1d + XU7p6end+Pj4/9fX1/+Xl5f/VlZW/zo6Ov8yMjL/Pz8//3d3d/+ioqL/tra2/6ysrP+jo6P/nZ2d/5qa + mv+bm5v/oKCg/6Ojo/+qqqr/sbGx/5mZmf9fX1//UFBQ/1xcXP9lZWX/gICA/4SEhP+SkpL/kJCQ/46O + jv+JiYn/eXl5/2tra/9YWFj/Tk5O/0VFRf89PT3/IiIi/w4ODv9FRUX/goKC/46Ojv9bW1v/Ozs7/0dH + R/93d3f/qKio/8HBwf+3t7fdSEhITgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAiYmJgf39/fDy8vL/y8vL/46Ojv9WVlb/Ojo6/zExMf89PT3/cXFx/5mZ + mf+xsbH/sbGx/6mpqf+hoaH/nJyc/5ubm/+cnJz/np6e/6Ojo/+npqf/qqqq/62trf+vr6//sLCw/6+v + r/+goKD/jY2N/4iIiP+FhYX/gYGB/319ff9xcXH/ZmZm/1xcXP9TU1P/JiYm/xwcHP9QUFD/hYWF/4uL + i/9aWlr/Pj4+/0hISP9zc3P/oqKi/7+/v//IyMjwcXFxgQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC8vLxqioqKT/f39+O/v7//Hx8f/jY2N/1dX + V/87Ozv/MjIy/z09Pf9tbW3/jY2N/6qqqv+3t7f/sLCw/6ioqP+hoaH/np6e/52dnf+dnZ3/np6e/6Gh + of+jo6P/o6Oj/6SkpP+kpKT/nZ2d/42Njf+EhIT/goKC/4KCgv+CgoL/fn5+/3h4eP9iYmL/NjY2/zQ0 + NP9dXV3/j4+P/39/f/9WVlb/Pz8//0tLS/9zc3P/oqKi/7+/v//Nzc34goKCkyUlJRoAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASEhINqOj + o5v8+/z47+/v/8fHx/+Ojo7/Wlpa/z8/P/82Njb/Ojo6/1hYWP9/f3//mZmZ/6urq/+2trb/sbGx/6mp + qf+npqf/o6Oj/6Kiov+hoaH/oqKi/6Ojo/+jo6P/oqKi/6Ghof+UlJT/h4eH/4uLi/+Ojo7/kJCQ/4GB + gf9YWFj/T09P/1BQUP9ycnL/kJCQ/29vb/9PT0//QEBA/01NTf94eHj/p6an/8HBwf/Pz8/4hoaGmzk5 + OTYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAABFRUU+o6Ojm/39/fju7u7/x8fH/5OTk/9iYmL/R0dH/zg4OP85OTn/R0dH/2tr + a/+FhYX/m5ub/6mpqf+xsbH/s7Oz/7Ozs/+vr6//ra2t/6ysrP+srKz/rKys/6ysrP+srKz/p6an/5ub + m/+Tk5P/hoaG/3p6ev9tbW3/YmJi/2tra/+Li4v/enp6/1xcXP9JSUn/RUVF/1dXV/+BgYH/rKys/8jI + yP/T09P4iYmJmzs7Oz4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEdHRz6ioqKb/Pv88e/v7//Pz8//oqKi/3Z2 + dv9TU1P/QkJC/zs7O/8+Pj7/TExM/21tbf+BgYH/j4+P/5ubm/+npqf/ra2t/7CwsP+0tLT/uLi4/7m5 + uf+5ubn/uLi4/7Gxsf+npqf/l5eX/4iIiP99fX3/cHBw/4eHh/92dnb/Xl5e/05OTv9ISEj/UFBQ/2pq + av+Pj4//tLS0/8/Pz//Z2dnxjIyMmz8/Pz4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARkZGPqKi + opTo6OjZ8fHx/9vb2/+3t7f/j4+P/2tra/9TU1P/RERE/z09Pf89PT3/R0dH/1xcXP9zc3P/gICA/4mJ + if+QkJD/lpaW/5ubm/+cnJz/np6e/56env+ampr/lpaW/42Njf+FhYX/c3Nz/2NjY/9WVlb/TU1N/0lJ + Sf9SUVL/ZWVl/4SEhP+oqKj/xsbG/9nZ2f/JycnZjo6OlD09PT4AAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAABFRUU3jIyMfdPT08L5+fn66enp/8/Pz/+wsLD/i4uL/29vb/9WVlb/RkZG/z8/ + P/9AQED/RUVF/0xMTP9TU1P/Xl5e/19fX/9kZGT/aGho/2lpaf9paWn/aWlp/2FhYf9aWlr/U1NT/0xM + TP9JSUn/TExM/1dXV/9qamr/hISE/6Ojo//AwMD/1tbW/+Pj4/q5ubnCe3t7fT8/PzcAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADExMRJzc3NloqKinuPj49j29vb/5OTk/83N + zf+xsbH/k5OT/3h4eP9kZGT/V1dX/09PT/9LS0v/R0dH/0hISP9GRkb/RUVF/0hISP9JSUn/SUlJ/0xM + TP9NTU3/T09P/1NTU/9YWFj/Y2Nj/3d3d/+QkJD/qamp/8LCwv/Z2dn/6enp/9TU1NiWlpaeaWlpZSoq + KhIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEZG + RkGJiYl7ubm5quPj49ny8vL/5+fn/9TU1P+9vb3/qKio/5SUlP+FhYX/eHh4/2xsbP9lZWX/YWFh/19f + X/9fX1//YWFh/2JiYv9oaGj/b29v/3l5ef+Ghob/lJSU/6emp/+9vb3/0tLS/97e3v/p6en/2dnZ2bCw + sKqBgYF7QEBAQQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAMTExEFxcXE2JiYl8urq6quXl5dX4+Pj08fHx/+Tk5P/W1tb/ycnJ/7u7 + u/+wsLD/qKio/6Ojo/+goKD/oKCg/6CgoP+goKD/paWl/7CwsP+9vb3/y8vL/9bW1v/i4uL/7+/v//Pz + 8/Te3t7VsbGxqoWFhXxXV1dNKysrEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALy8vEF9fX02Li4t4o6Ojl7i4 + uLXOzs7M4uLi5PPz8/jv7+//6enp/+Li4v/g4OD/3t7e/97e3v/e3t7/4ODg/+Tk5P/p6en/7+/v//Pz + 8/jh4eHkzs7OzLi4uLWioqKXiIiIeFhYWE0qKioQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAMDAwCUdHRzpdXV1ZdHR0cImJiYeioqKbubm5r7e3t7nNzc3Bzc3Nzs3NzdDNzc3Qzc3N0M3N + zc7Nzc3BuLi4ubm5ua+kpKSbiYmJh3R0dHBbW1tZRUVFOiwsLAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjImR0dHPl1dXVJdXV1cdHR0ZXR0 + dHJ0dHRzdHR0c3R0dHN0dHRyc3NzZV1dXVxcXFxSRUVFPi8vLyYAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA/////////////////////////////////////////////////////////4AD///////4AAA/ + /////+AAAA//////gAAAA/////4AAAAA/////AAAAAB////wAAAAAB///+AAAAAAD///wAAAAAAH//+A + AAAAAAP//4AAAAAAA///AAAAAAAB//4AAAAAAAD//AAAAAAAAH/8AAAAAAAAf/gAAAAAAAA/+AAAAAAA + AD/wAAAAAAAAH/AAAAAAAAAf8AAAAAAAAB/gAAAAAAAAD+AAAAAAAAAP4AAAAAAAAA/gAAAAAAAAD8AA + AAAAAAAHwAAAAAAAAAfAAAAAAAAAB8AAAAAAAAAHwAAAAAAAAAfgAAAAAAAAD+AAAAAAAAAP4AAAAAAA + AA/gAAAAAAAAD+AAAAAAAAAP8AAAAAAAAB/wAAAAAAAAH/AAAAAAAAAf+AAAAAAAAD/4AAAAAAAAP/wA + AAAAAAB//gAAAAAAAP/+AAAAAAAA//8AAAAAAAH//4AAAAAAA///wAAAAAAH///gAAAAAA////AAAAAA + H///+AAAAAA////8AAAAAH////8AAAAB/////4AAAAP/////4AAAD//////8AAB////////AB/////// + //////////////////////////////////////////////////8= + + \ No newline at end of file diff --git a/ShiftOS-TheRevival/ShiftOS-TheRevival.vbproj b/ShiftOS-TheRevival/ShiftOS-TheRevival.vbproj index c660d6c..065208b 100644 --- a/ShiftOS-TheRevival/ShiftOS-TheRevival.vbproj +++ b/ShiftOS-TheRevival/ShiftOS-TheRevival.vbproj @@ -93,8 +93,8 @@ - - + + BugSlap.vb @@ -134,9 +134,9 @@ Form - + - + Form @@ -150,7 +150,7 @@ Form - + Console.vb @@ -159,9 +159,9 @@ - + - + diff --git a/ShiftOS-TheRevival/TerminalApplications/External/App_TextPad.vb b/ShiftOS-TheRevival/TerminalApplications/External/App_TextPad.vb deleted file mode 100644 index 80e9599..0000000 --- a/ShiftOS-TheRevival/TerminalApplications/External/App_TextPad.vb +++ /dev/null @@ -1,34 +0,0 @@ -Imports System.IO - -Module App_TextPad - Public Sub TextPad_CheckExist(TxtFileName As String) - If File.Exists(Console.CurrentDirectory & "\" & TxtFileName) = True Then - Console.TextBox1.Text = My.Computer.FileSystem.ReadAllText(Console.CurrentDirectory & "\" & TxtFileName) - End If - End Sub - - Public Sub TextPad_GenerateCP_SavedFile() - Select Case Console.TextBox1.TextLength - Case 1 To 9 - Dim GetCP As New Random - Dim GotCP As Integer = GetCP.Next(1, 3) - ChangeCP(True, GotCP) - Case 10 To 99 - Dim GetCP As New Random - Dim GotCP As Integer = GetCP.Next(4, 26) - ChangeCP(True, GotCP) - Case 100 To 999 - Dim GetCP As New Random - Dim GotCP As Integer = GetCP.Next(27, 251) - ChangeCP(True, GotCP) - Case 1000 To 9999 - Dim GetCP As New Random - Dim GotCP As Integer = GetCP.Next(252, 2501) - ChangeCP(True, GotCP) - End Select - End Sub - - Public Sub TextPad_WarnFile() - NewLine("Type any filename after 'textpad'!, ex: textpad text.txt") - End Sub -End Module diff --git a/ShiftOS-TheRevival/TerminalApplications/External/Textpad/App_TextPad.vb b/ShiftOS-TheRevival/TerminalApplications/External/Textpad/App_TextPad.vb new file mode 100644 index 0000000..80e9599 --- /dev/null +++ b/ShiftOS-TheRevival/TerminalApplications/External/Textpad/App_TextPad.vb @@ -0,0 +1,34 @@ +Imports System.IO + +Module App_TextPad + Public Sub TextPad_CheckExist(TxtFileName As String) + If File.Exists(Console.CurrentDirectory & "\" & TxtFileName) = True Then + Console.TextBox1.Text = My.Computer.FileSystem.ReadAllText(Console.CurrentDirectory & "\" & TxtFileName) + End If + End Sub + + Public Sub TextPad_GenerateCP_SavedFile() + Select Case Console.TextBox1.TextLength + Case 1 To 9 + Dim GetCP As New Random + Dim GotCP As Integer = GetCP.Next(1, 3) + ChangeCP(True, GotCP) + Case 10 To 99 + Dim GetCP As New Random + Dim GotCP As Integer = GetCP.Next(4, 26) + ChangeCP(True, GotCP) + Case 100 To 999 + Dim GetCP As New Random + Dim GotCP As Integer = GetCP.Next(27, 251) + ChangeCP(True, GotCP) + Case 1000 To 9999 + Dim GetCP As New Random + Dim GotCP As Integer = GetCP.Next(252, 2501) + ChangeCP(True, GotCP) + End Select + End Sub + + Public Sub TextPad_WarnFile() + NewLine("Type any filename after 'textpad'!, ex: textpad text.txt") + End Sub +End Module -- cgit v1.2.3