Keeps becoming unresponsive kinda randomly?

Just starting out? Need help? Post your questions and find answers here.
vwidmer
Enthusiast
Enthusiast
Posts: 282
Joined: Mon Jan 20, 2014 6:32 pm

Keeps becoming unresponsive kinda randomly?

Post by vwidmer »

Any one can see what I am doing wrong here why it keeps freezing and or becoming unreponsive?

Code: Select all

;systemctl is-active
Enumeration
  #MainWindow
  #StatusBar
  #Timer30000
  #gCBOServer
  #gLSTServices
  #gBTNRebootServer
  #gBTNRestartServices
  #gBTNQuit
EndEnumeration

Enumeration
  #imgYellow
  #imgRed
  #imgGreen
EndEnumeration

Structure srvService
  srvName.s
  srvIP.s
  srvService.s
  srvCCRestart.s
  srvCCStatus.s
  srvCCSExpect.s
EndStructure

Structure srvIPs
  srvIP.s
EndStructure

Global NewList srvserv.srvService()
Global NewList srvlist.srvIPs()
Global Tsrv0
Global runONCE = 0

Global srv1.s, srv1a.s = "server1.com", srv1b.s = "10.2.2.1"
Global srv2.s, srv2a.s = "server2.com", srv2b.s = "192.168.1.1"
Global srv3.s = "server3.com", srv3a.s = "app.server3.com", srv3b.s = "123.123.123.123"

; Debugging
Procedure vdbg(dbgmsg.s,dbgopt.i=0)
  Select dbgopt
    Case 0
      Debug dbgmsg
    Case 1
      Debug dbgmsg
      StatusBarText(#StatusBar, 0, dbgmsg ,#PB_StatusBar_BorderLess | #PB_StatusBar_Center)
  EndSelect
EndProcedure

; RunProgram CMD
Procedure.s cmdapp(cmd.s,showio.b)
  RunCMD = RunProgram("bash", "-c "+#DQUOTE$+cmd+#DQUOTE$+"", "/", #PB_Program_Open | #PB_Program_Read)
  
  If RunCMD
    While ProgramRunning(RunCMD)
      If AvailableProgramOutput(RunCMD) 
        poutput.s + ReadProgramString(RunCMD) + Chr(13)
        Debug poutput
      EndIf
    Wend
    CloseProgram(RunCMD) ; Close the connection to the program
  EndIf
  
  If showio = true
    ProcedureReturn poutput
  EndIf
  Debug poutput
EndProcedure

; Check Server Status
Procedure srvStatus(tmpThread)
  cnt.i = 0
  
  ForEach srvserv()
    If srvserv()\srvIP = GetGadgetItemText(#gCBOServer,GetGadgetState(#gCBOServer))
      
      Debug "Checking: " + Str(cnt) + " - " + srvserv()\srvName
      StatusBarText(#StatusBar, 0, srvserv()\srvName + ": Checking..." ,#PB_StatusBar_BorderLess | #PB_StatusBar_Center)
      
      If srvserv()\srvService = "custom"
        If FindString(cmdapp("ssh root@" + srvserv()\srvIP + " -p22 '" + srvserv()\srvCCStatus + "'",false),srvserv()\srvCCSExpect)
          Debug "cResult: " + Str(cnt) + " - " + srvserv()\srvName + " - Online"
          StatusBarText(#StatusBar, 0, srvserv()\srvName + ": Online" ,#PB_StatusBar_BorderLess | #PB_StatusBar_Center)
          SetGadgetItemImage(#gLSTServices,cnt,ImageID(#imgGreen))
          SetGadgetItemText(#gLSTServices,cnt,srvserv()\srvName + " - Online")
        Else
          Debug "cResult: " + Str(cnt) + " - " + srvserv()\srvName + " - Offline"
          StatusBarText(#StatusBar, 0, srvserv()\srvName + ": Offline" ,#PB_StatusBar_BorderLess | #PB_StatusBar_Center)
          SetGadgetItemImage(#gLSTServices,cnt,ImageID(#imgRed))
          SetGadgetItemText(#gLSTServices,cnt,srvserv()\srvName + " - Offline")
        EndIf
      Else
        If FindString(cmdapp("ssh root@" + srvserv()\srvIP + " -p22 'systemctl status " + srvserv()\srvService + " | grep 'Active:''",false),"running")
          Debug "sResult: " + Str(cnt) + " - " + srvserv()\srvName + " - Online"
          StatusBarText(#StatusBar, 0, srvserv()\srvName + ": Online" ,#PB_StatusBar_BorderLess | #PB_StatusBar_Center)
          SetGadgetItemImage(#gLSTServices,cnt,ImageID(#imgGreen))
          SetGadgetItemText(#gLSTServices,cnt,srvserv()\srvName + " - Online")
        Else
          Debug "sResult: " + Str(cnt) + " - " + srvserv()\srvName + " - Offline"
          StatusBarText(#StatusBar, 0, srvserv()\srvName + ": Offline" ,#PB_StatusBar_BorderLess | #PB_StatusBar_Center)
          SetGadgetItemImage(#gLSTServices,cnt,ImageID(#imgRed))
          SetGadgetItemText(#gLSTServices,cnt,srvserv()\srvName + " - Offline")
        EndIf
      EndIf
      cnt = cnt + 1
    EndIf
    Delay(30)
  Next
  
  StatusBarText(#StatusBar, 0, "" ,#PB_StatusBar_BorderLess | #PB_StatusBar_Center)
EndProcedure

Procedure updateSrvLst()
  If IsThread(Tsrv0) : KillThread(Tsrv0) : EndIf
  DisableGadget(#gBTNRestartServices,1)
  ClearGadgetItems(#gLSTServices)
  ForEach srvserv()
    If srvserv()\srvIP = GetGadgetItemText(#gCBOServer,GetGadgetState(#gCBOServer))
      AddGadgetItem(#gLSTServices, -1, srvserv()\srvName + " - Checking...", ImageID(#imgYellow))
    EndIf
  Next
  Tsrv0 = ThreadID(CreateThread(@srvStatus(),0))
EndProcedure

Procedure restartService()
  If IsThread(Tsrv0) : KillThread(Tsrv0) : EndIf
  If GetGadgetState(#gLSTServices) >= 0
    ForEach srvserv()
      If srvserv()\srvIP = GetGadgetItemText(#gCBOServer,GetGadgetState(#gCBOServer)) And srvserv()\srvName = Trim(StringField(GetGadgetItemText(#gLSTServices,GetGadgetState(#gLSTServices)),1,"-"))
        If srvserv()\srvService = "custom"
          cmdapp("ssh root@" + GetGadgetItemText(#gCBOServer,GetGadgetState(#gCBOServer)) + " -p22 '" + srvserv()\srvCCRestart + "'",true)
        Else
          cmdapp("ssh root@" + GetGadgetItemText(#gCBOServer,GetGadgetState(#gCBOServer)) + " -p22 'systemctl restart " + srvserv()\srvService + "'",true)
        EndIf
        DisableGadget(#gBTNRestartServices,1)
        StatusBarText(#StatusBar, 0, "Restarting " + srvserv()\srvName + " please wait.." ,#PB_StatusBar_BorderLess | #PB_StatusBar_Center)
      EndIf
    Next
  EndIf
  Tsrv0 = ThreadID(CreateThread(@srvStatus(),0))
EndProcedure

;-Main()
; Shows possible flags of ListIconGadget in action...
If OpenWindow(#MainWindow, 0, 0, 480, 400, "Server Tool", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  AddWindowTimer(#MainWindow,#Timer30000,30000)
  ComboBoxGadget(#gCBOServer, 20, 20, 330, 25)
  ListIconGadget(#gLSTServices, 20, 60, 330, 290, "", 200,#PB_ListIcon_GridLines)
  SetGadgetAttribute(#gLSTServices, #PB_ListIcon_DisplayMode, #PB_ListIcon_LargeIcon)
  ButtonGadget(#gBTNRestartServices, 360, 200, 100, 50, "Restart") : DisableGadget(#gBTNRestartServices,1)
  ButtonGadget(#gBTNRebootServer, 360, 10, 100, 40, "Reboot")
  CreateStatusBar(#StatusBar, WindowID(Window_0))
  AddStatusBarField(480)
  StatusBarText(#StatusBar, 0, "Initializing...",#PB_StatusBar_BorderLess | #PB_StatusBar_Center)
  
  vdbg("- load binary images",1)
  CatchImage(#imgGreen, ?imggreen_bmp_start)
  CatchImage(#imgRed, ?imgred_bmp_start)
  CatchImage(#imgYellow, ?imgyellow_bmp_start)
  
  vdbg("- check if on local lan",1)
  If FindString(cmdapp("ifconfig -a | grep inet",false),"192.168.1")
    SetWindowTitle(#MainWindow, GetWindowTitle(#MainWindow) + " - LAN")
    srv2 = srv2b
  Else
    srv2 = srv2a
  EndIf
  vdbg("- check if using VPN",1)
  If FindString(cmdapp("ifconfig -a | grep inet",false),"10.2.2")
    SetWindowTitle(#MainWindow, GetWindowTitle(#MainWindow) + " - (Using VPN)")
    ;MessageRequester("VPN", "VPN detected you may want to disconnect the vpn if you do not see a connection."+#LFCR$+#LFCR$+"USING VPN CONNECTION.")
    srv1 = srv1b
  Else
    srv1 = srv1a
  EndIf
  
  vdbg("- populate structurelist",1) 
  AddElement(srvserv())
  srvserv()\srvIP = srv1
  srvserv()\srvName = "Web Service"
  srvserv()\srvService = "apache2.service" 
  AddElement(srvserv())
  srvserv()\srvIP = srv1
  srvserv()\srvName = "SMTP Service"
  srvserv()\srvService = "postfix*.service" 
  AddElement(srvserv())
  srvserv()\srvIP = srv1
  srvserv()\srvName = "IMAP Service"
  srvserv()\srvService = "dovecot.service" 
  AddElement(srvserv())
  srvserv()\srvIP = srv1
  srvserv()\srvName = "VPN Service"
  srvserv()\srvService = "openvpn-server@server.service" 
  AddElement(srvserv())
  srvserv()\srvIP = srv1
  srvserv()\srvName = "Firewall"
  srvserv()\srvService = "custom"   
  srvserv()\srvCCStatus = "systemctl is-active firewalld"
  srvserv()\srvCCSExpect = "active"
  srvserv()\srvCCRestart = "systemctl stop firewalld;systemctl stop fail2ban;systemctl start firewalld;systemctl start fail2ban"
  AddElement(srvserv())
  srvserv()\srvIP = srv3
  srvserv()\srvName = "App"
  srvserv()\srvService = "custom"   
  srvserv()\srvCCStatus = "/opt/coldfusion2018/cfusion/bin/coldfusion status"
  srvserv()\srvCCSExpect = "Server is running"
  srvserv()\srvCCRestart = "/opt/coldfusion2018/cfusion/bin/coldfusion restart"
  AddElement(srvserv())
  srvserv()\srvIP = srv2
  srvserv()\srvName = "OnlyOffice Service"
  srvserv()\srvService = "docker.service"   
  AddElement(srvserv())
  srvserv()\srvIP = srv2
  srvserv()\srvName = "VPN Service"
  srvserv()\srvService = "openvpn-client@Server.service" 
  
  vdbg("- build server List",1)
  ForEach srvserv()
    srvXsts=#False
    If ListSize(srvlist()) = 0 ; empty srvlist
      AddElement(srvlist())
      srvlist()\srvIP = srvserv()\srvIP
      Continue
    EndIf    
    ForEach srvlist()
      If srvserv()\srvIP = srvlist()\srvIP
        srvXsts=#True
        Debug "Break"
        Break
      Else
        srvXsts=#False
      EndIf   
    Next  
    If srvXsts=#False
      Debug "adding - " + srvserv()\srvIP
      AddElement(srvlist())
      srvlist()\srvIP = srvserv()\srvIP
    EndIf
  Next
  
  vdbg("- populating server combo box",1)
  ForEach srvlist()
    AddGadgetItem(#gCBOServer, -1, srvlist()\srvIP)
  Next
  SetGadgetState(#gCBOServer, 0)
  
  vdbg("- populating services",1)
  ForEach srvserv()
    If srvserv()\srvIP = GetGadgetItemText(#gCBOServer,0)
      AddGadgetItem(#gLSTServices, -1, srvserv()\srvName + " - Checking...", ImageID(#imgYellow))
    EndIf
  Next
  
  ;Tsrv0 = ThreadID(CreateThread(@srvStatus(),0))
  
  StatusBarText(#StatusBar, 0, "" ,#PB_StatusBar_BorderLess | #PB_StatusBar_Center)
  
  Repeat
    Select WaitWindowEvent()
      Case #PB_Event_CloseWindow
        Break
      Case #PB_Event_Gadget
        Select EventGadget()
          Case #gBTNRebootServer    
            Result = MessageRequester("Reboot Server", "Are you really sure you wish to reboot the server?", #PB_MessageRequester_YesNo)
            If Result = #PB_MessageRequester_Yes    ; pressed Yes button (Result = 6)
              Debug "yes"
              cmdapp("ssh root@" + GetGadgetItemText(#gCBOServer,GetGadgetState(#gCBOServer)) + " -p22 'reboot'",true)
            Else                                    ; pressed No button (Result = 7)
              Debug "no"
            EndIf
          Case #gBTNRestartServices
            restartService()
          Case #gLSTServices
            DisableGadget(#gBTNRestartServices,0)
            StatusBarText(#StatusBar, 0, Trim(StringField(GetGadgetItemText(#gLSTServices,GetGadgetState(#gLSTServices)),1,"-")) + " selected for restart" ,#PB_StatusBar_BorderLess | #PB_StatusBar_Center)
          Case #gCBOServer
            updateSrvLst()
          Default
            Debug EventGadget()
        EndSelect
      Case #PB_Event_Timer
        Debug EventTimer()
        If Not IsThread(Tsrv0)
          Tsrv0 = ThreadID(CreateThread(@srvStatus(),0))
        EndIf
        Delay(100)
    EndSelect
    If runONCE = 0
    runONCE = 1
    Tsrv0 = ThreadID(CreateThread(@srvStatus(),0))
    EndIf
  ForEver
EndIf

;-Image Data
DataSection
  imggreen_bmp_start:
  ; size : 4234 bytes
  Data.q $00000000108A4D42,$007C0000008A0000,$0020000000200000,$0003002000010000,$0B13000010000000
  Data.q $000000000B130000,$0000000000000000,$00FF0000FF0000FF,$4742FF0000000000,$0000000000007352
  Data.q $0000000000000000,$0000000000000000,$0000000000000000,$0000000000000000,$0000000000000000
  Data.q $0000000000020000,$0000000000000000,$FEFEFFFEFEFE0000,$FEFEFFFEFEFEFFFE,$FEFDFFFEFEFEFFFE
  Data.q $FEFCFFFCFEFCFFFD,$FEFCFFFCFEFCFFFC,$FEFCFFFCFEFCFFFC,$F3E9FFFBFDFBFFFC,$B100FF5CBB5CFFE9
  Data.q $B21CFF00B100FF00,$FBF7FFD8EAD8FF1C,$FEFDFFF9FCF9FFF7,$FEFCFFFCFEFCFFFD,$FEFDFFFDFEFDFFFC
  Data.q $FEFEFFFEFEFEFFFD,$FEFEFFFEFEFEFFFE,$FEFEFFFEFEFEFFFE,$FEFEFFFEFEFEFFFE,$FEFEFFFEFEFEFFFE
  Data.q $FEFDFFFEFEFEFFFE,$FDFCFFFBFDFBFFFD,$FEFCFFFCFEFCFFFC,$FEFCFFFCFEFCFFFC,$F8F2FFFBFDFBFFFC
  Data.q $B100FF79C379FFF2,$B322FF00B100FF00,$F8F2FFDFEEDFFF22,$FEFCFFFAFCFAFFF2,$FEFCFFFCFEFCFFFC
  Data.q $FEFCFFFCFEFCFFFC,$FEFEFFFDFEFDFFFC,$FEFEFFFEFEFEFFFE,$FEFEFFFEFEFEFFFE,$FEFEFFFEFEFEFFFE
  Data.q $FEFEFFFEFEFEFFFE,$FCFAFFFDFEFDFFFE,$FDFBFFF6FAF6FFFA,$FEFCFFFCFEFCFFFB,$FEFCFFFCFEFCFFFC
  Data.q $FBF8FFFBFDFBFFFC,$B100FF8AC98AFFF8,$B322FF00B100FF00,$FBF8FFE1EFE1FF22,$FEFCFFFCFDFCFFF8
  Data.q $FCF9FFFCFEFCFFFC,$FBF7FFFCFEFCFFF9,$FDFCFFF5F9F5FFF7,$FEFEFFFEFEFEFFFC,$FEFEFFFEFEFEFFFE
  Data.q $FEFEFFFEFEFEFFFE,$FEFDFFFEFEFEFFFE,$E2C7FFFCFDFCFFFD,$F9F4FF9DD09DFFC7,$FDFCFFFBFDFBFFF4
  Data.q $FEFCFFFCFEFCFFFC,$FCFAFFFBFDFBFFFC,$B100FF8ECA8EFFFA,$B322FF00B100FF00,$FCFAFFDFEEDFFF22
  Data.q $FEFCFFFCFEFCFFFA,$FEFCFFFCFEFCFFFC,$E4CBFFFCFEFCFFFC,$F7F0FF8ECA8EFFCB,$FEFEFFFEFEFEFFF0
  Data.q $FEFEFFFEFEFEFFFE,$FEFEFFFEFEFEFFFE,$FAF6FFF8FBF8FFFE,$B538FFC8E2C8FFF6,$D09FFF16B216FF38
  Data.q $FCF9FFF0F7F0FF9F,$FEFCFFFCFDFCFFF9,$FDFBFFFCFDFCFFFC,$B100FF90CB90FFFB,$B322FF00B100FF00
  Data.q $FCF9FFE0EEE0FF22,$FEFCFFFBFDFBFFF9,$FEFCFFFDFEFDFFFC,$B84DFFD6E9D6FFFC,$C784FF0DB10DFF4D
  Data.q $FEFCFFECF5ECFF84,$FEFEFFFDFEFDFFFC,$FEFEFFFEFEFEFFFE,$E5CDFFF9FCF9FFFE,$B100FF38B538FFCD
  Data.q $B216FF00B100FF00,$F9F4FF9ED09EFF16,$FEFCFFFBFDFBFFF4,$FDFBFFFCFEFCFFFC,$B100FF90CB90FFFB
  Data.q $B322FF00B100FF00,$FDFBFFE1EFE1FF22,$FEFCFFFCFDFCFFFB,$EAD8FFFBFDFBFFFC,$B100FF53B953FFD8
  Data.q $B10DFF00B100FF00,$FAF6FF85C785FF0D,$FEFEFFFCFEFCFFF6,$FEFEFFFEFEFEFFFE,$EAD8FFFBFDFBFFFE
  Data.q $B100FF53B953FFD8,$B100FF00B100FF00,$D19FFF16B216FF00,$FCF9FFF6FAF6FF9F,$FBF8FFF9FCF9FFF9
  Data.q $B100FF8FCA8FFFF8,$B322FF00B100FF00,$FDFBFFE0EFE0FF22,$FDFBFFFAFCFAFFFB,$BA56FFD8EAD8FFFB
  Data.q $B100FF00B100FF56,$B216FF00B100FF00,$FCF9FFA0D1A0FF16,$FEFEFFFEFEFEFFF9,$FEFDFFFEFEFEFFFE
  Data.q $FCF9FFFCFDFCFFFD,$B953FFCDE5CDFFF9,$B100FF00B100FF53,$B21CFF00B100FF00,$F7F1FF9FD09FFF1C
  Data.q $FAF6FFF8FBF8FFF1,$B10DFF90CB90FFF6,$B322FF00B100FF0D,$FBF7FFDEEDDEFF22,$EAD8FFF6FAF6FFF7
  Data.q $B745FF7CC47CFFD8,$B100FF0DB10DFF45,$D4A7FF22B322FF00,$FEFEFFF6FAF6FFA7,$FEFEFFFEFEFEFFFE
  Data.q $FEFDFFFEFEFEFFFE,$FBF8FFF8FBF8FFFD,$EAD8FFF3F8F3FFF8,$B216FF53B953FFD8,$B322FF22B322FF16
  Data.q $D6ADFF38B538FF22,$FBF7FFF6FAF6FFAD,$B42EFF93CC93FFF7,$B42EFF2EB42EFF2E,$FBF8FFDEEDDEFF2E
  Data.q $C98BFFD7EAD7FFF8,$C379FF83C683FF8B,$B84BFF63BD63FF79,$F8F3FFB2D8B2FF4B,$FEFEFFFCFEFCFFF3
  Data.q $FEFEFFFEFEFEFFFE,$FEFDFFFDFEFDFFFE,$FCFAFFFBFDFBFFFD,$FEFCFFF9FCF9FFFA,$BB5CFFD5E9D5FFFC
  Data.q $B642FF70C070FF5C,$BD63FF5CBB5CFF42,$FAF6FFC1DFC1FF63,$BE65FF9BCF9BFFF6,$BB5AFF6EC06EFF65
  Data.q $EAD7FFE0EEE0FF5A,$CA8EFF90CB90FFD7,$C98AFF97CD97FF8E,$E3CAFF86C786FF8A,$FEFDFFF8FBF8FFCA
  Data.q $FEFEFFFDFEFDFFFD,$FEFEFFFEFEFEFFFE,$FEFDFFFDFEFDFFFE,$FEFCFFFCFEFCFFFD,$FCF9FFFBFDFBFFFC
  Data.q $EAD7FFF2F8F2FFF9,$C889FF79C379FFD7,$C887FF63BD63FF89,$E6D0FF9FD09FFF87,$DAB5FFBBDCBBFFD0
  Data.q $DBB8FFC1DFC1FFB5,$CF9BFFD4E8D4FFB8,$D09FFF92CB92FF9B,$CD96FF95CD95FF9F,$FDFBFFD7EAD7FF96
  Data.q $FEFCFFFCFEFCFFFB,$FEFEFFFDFEFDFFFC,$FEFEFFFEFEFEFFFE,$FEFCFFFDFEFDFFFE,$FEFCFFFCFEFCFFFC
  Data.q $FDFCFFFCFEFCFFFC,$FDFBFFF9FCF9FFFC,$CA8FFFE6F1E6FFFB,$CB91FF98CE98FF8F,$E6D0FFABD5ABFF91
  Data.q $F7F1FFF1F7F1FFD0,$F7F1FFF7FBF7FFF1,$D5AAFFDCECDCFFF1,$CD95FFA2D2A2FFAA,$EAD7FF97CD97FF95
  Data.q $FDFBFFF9FCF9FFD7,$FDFCFFFCFDFCFFFB,$FEFEFFFCFEFCFFFC,$FEFDFFFCFEFCFFFE,$FDFBFFFCFDFCFFFD
  Data.q $FCFAFFFAFCFAFFFB,$FDFBFFFCFEFCFFFA,$FDFCFFFCFDFCFFFB,$EFE2FFF4F9F4FFFC,$D5ABFF9FD09FFFE2
  Data.q $F2E8FFCBE4CBFFAB,$CD97FFD0E6D0FFE8,$D6ADFF96CD96FF97,$EBDAFFE7F2E7FFAD,$CE98FFA5D3A5FFDA
  Data.q $FDFBFFD8EAD8FF98,$FDFBFFFBFDFBFFFB,$FBF8FFFAFCFAFFFB,$FDFBFFF9FCF9FFF8,$FCFAFFFBFDFBFFFB
  Data.q $EEDFFFE0EFE0FFFA,$EFE2FFDFEEDFFFDF,$EFE1FFE2EFE2FFE2,$EFE1FFE1EFE1FFE1,$F6EEFFE0EFE0FFE1
  Data.q $E3C8FFE9F3E9FFEE,$D6ADFFF0F7F0FFC8,$B100FF2AB32AFFAD,$B10DFF00B100FF00,$EEDFFF5DBC5DFF0D
  Data.q $E1C5FFDAEBDAFFDF,$EEDFFFDDEDDDFFC5,$EFE0FFDEEDDEFFDF,$EFE1FFE1EFE1FFE0,$EFE2FFE2EFE2FFE1
  Data.q $ECDCFFE0EFE0FFE2,$B322FF22B322FFDC,$B322FF22B322FF22,$B322FF22B322FF22,$B53BFF22B322FF22
  Data.q $CB90FF68BE68FF3B,$ECDCFFACD6ACFF90,$B747FFE6F1E6FFDC,$B100FF00B100FF47,$B100FF00B100FF00
  Data.q $D1A1FF0DB10DFF00,$DFC2FFF3F8F3FFA1,$B322FF5DBC5DFFC2,$B322FF22B322FF22,$B322FF22B322FF22
  Data.q $B322FF22B322FF22,$B21CFF22B322FF22,$B100FF00B100FF1C,$B100FF00B100FF00,$B100FF00B100FF00
  Data.q $B953FF2EB42EFF00,$CC94FF73C173FF53,$F4EBFFB1D8B1FF94,$B21CFFCCE4CCFFEB,$B100FF00B100FF1C
  Data.q $B100FF00B100FF00,$C57EFF00B100FF00,$E1C5FFEFF6EFFF7E,$B326FF6ABF6AFFC5,$B100FF00B100FF26
  Data.q $B100FF00B100FF00,$B100FF00B100FF00,$B100FF00B100FF00,$B100FF00B100FF00,$B100FF00B100FF00
  Data.q $B10DFF00B100FF00,$BD62FF35B535FF0D,$D09EFF83C683FF62,$F0E4FFADD6ADFF9E,$B21CFFD4E8D4FFE4
  Data.q $B100FF00B100FF1C,$B100FF00B100FF00,$C784FF00B100FF00,$E0C4FFF0F7F0FF84,$B42EFF77C377FFC4
  Data.q $B100FF0DB10DFF2E,$B100FF00B100FF00,$B100FF00B100FF00,$B100FF00B100FF00,$B326FF22B322FF00
  Data.q $BB5AFF47B747FF26,$C378FF63BD63FF5A,$CD96FF85C785FF78,$D7AFFFA7D4A7FF96,$EDDEFFB7DBB7FFAF
  Data.q $BB5CFFE2EFE2FFDE,$B100FF00B100FF5C,$B100FF00B100FF00,$D7AFFF16B216FF00,$E3CAFFF4F9F4FFAF
  Data.q $CB92FF9FD09FFFCA,$CA8FFF90CB90FF92,$CA8FFF8FCA8FFF8F,$C98AFF8ECA8EFF8F,$C378FF85C785FF8A
  Data.q $ECDCFFE0EFE0FF78,$F4EAFFE2EFE2FFDC,$F8F3FFEDF5EDFFEA,$FCF9FFF6FAF6FFF3,$FDFBFFFAFCFAFFF9
  Data.q $E0C4FFEBF4EBFFFB,$E9D6FFE5F1E5FFC4,$B216FF5ABB5AFFD6,$B326FF0DB10DFF16,$F4EAFFA3D2A3FF26
  Data.q $D7AFFFCCE4CCFFEA,$FBF7FFEFF6EFFFAF,$FBF8FFFBFDFBFFF7,$FCF9FFF7FBF7FFF8,$FCF9FFF9FCF9FFF9
  Data.q $F9F4FFF8FBF8FFF9,$FCF9FFFCFEFCFFF4,$FEFCFFF9FCF9FFF9,$FEFCFFFCFEFCFFFC,$FBF7FFFCFEFCFFFC
  Data.q $EEDFFFF8FBF8FFF7,$D6ADFF9BCF9BFFDF,$F3E9FFC6E1C6FFAD,$E1C5FFE7F2E7FFE9,$EBDAFFA5D3A5FFC5
  Data.q $E3CAFFEBF4EBFFDA,$D1A1FF9FD09FFFCA,$F9F4FFAAD5AAFFA1,$FDFBFFFAFCFAFFF4,$FEFCFFFCFEFCFFFB
  Data.q $FDFBFFFBFDFBFFFC,$FEFEFFFDFEFDFFFB,$FEFCFFFCFEFCFFFE,$FEFCFFFCFEFCFFFC,$FEFCFFFCFEFCFFFC
  Data.q $FDFBFFFCFEFCFFFC,$BF6CFFD9EBD9FFFB,$CF9CFF77C377FF6C,$DBB7FFA3D2A3FF9C,$F4ECFFDDEDDDFFB7
  Data.q $F3E9FFEAF3EAFFEC,$D4A8FFC8E3C8FFE9,$CD95FF97CD97FFA8,$D5AAFFA1D1A1FF95,$FBF8FFF0F7F0FFAA
  Data.q $FEFCFFFCFEFCFFF8,$FEFDFFFCFEFCFFFC,$FEFEFFFDFEFDFFFD,$FEFCFFFDFEFDFFFE,$FEFCFFFCFEFCFFFC
  Data.q $FDFBFFFCFDFCFFFC,$EAD8FFFCFEFCFFFB,$B53BFF58BB58FFD8,$C98AFF85C785FF3B,$E8D4FF94CC94FF8A
  Data.q $D09EFFABD5ABFFD4,$D5ABFFA8D4A8FF9E,$D4A9FFD7EAD7FFAB,$CC94FF9BCF9BFFA9,$D09EFF97CD97FF94
  Data.q $F7F1FFA7D4A7FF9E,$FCFAFFFAFCFAFFF1,$FEFDFFFCFDFCFFFA,$FEFEFFFDFEFDFFFD,$FEFCFFFDFEFDFFFE
  Data.q $FEFCFFFCFEFCFFFC,$FCFAFFFBFDFBFFFC,$B953FFDAEBDAFFFA,$C275FF2EB42EFF53,$C889FF7AC47AFF75
  Data.q $FDFBFFD2E7D2FF89,$B951FF94CC94FFFB,$BE65FF5CBB5CFF51,$F7F1FFDDEDDDFF65,$CA8DFFA7D4A7FFF1
  Data.q $C98AFF91CB91FF8D,$CB92FF88C888FF8A,$F8F2FFE7F2E7FF92,$FEFDFFFBFDFBFFF2,$FEFEFFFDFEFDFFFD
  Data.q $FEFDFFFDFEFDFFFE,$FEFCFFFCFEFCFFFD,$EAD8FFFCFDFCFFFC,$B100FF53B953FFD8,$BE68FF35B535FF00
  Data.q $E3CAFF85C785FF68,$FCFAFFFBFDFBFFCA,$B32AFF90CB90FFFA,$B432FF1CB21CFF2A,$FBF8FFDFEEDFFF32
  Data.q $D3A4FFF0F7F0FFF8,$BF69FF65BE65FFA4,$B32AFF4BB84BFF69,$ECDCFF79C379FF2A,$FDFCFFFAFCFAFFDC
  Data.q $FEFEFFFDFEFDFFFC,$FEFDFFFEFEFEFFFE,$FBF7FFFBFDFBFFFD,$B953FFD6E9D6FFF7,$B100FF00B100FF53
  Data.q $BA56FF26B326FF00,$FCF9FFC5E1C5FF56,$FDFBFFFBFDFBFFF9,$B10DFF90CB90FFFB,$B322FF00B100FF0D
  Data.q $FCF9FFDFEEDFFF22,$F6EEFFF6FAF6FFF9,$B53BFF9FD19FFFEE,$B100FF0DB10DFF3B,$BC5FFF0DB10DFF00
  Data.q $F5EDFFD4E8D4FF5F,$FEFDFFFAFCFAFFED,$FEFEFFFEFEFEFFFD,$E5CEFFFCFDFCFFFE,$B100FF4DB84DFFCE
  Data.q $B100FF00B100FF00,$D7AEFF22B322FF00,$FEFCFFF8FBF8FFAE,$FDFBFFFCFEFCFFFC,$B100FF90CB90FFFB
  Data.q $B322FF00B100FF00,$FDFBFFDEEDDEFF22,$F3E9FFF8FBF8FFFB,$CF9CFFECF5ECFFE9,$B100FF16B216FF9C
  Data.q $B100FF00B100FF00,$F4EBFF60BC60FF00,$FEFDFFF9FCF9FFEB,$FEFEFFFEFEFEFFFD,$EDDDFFFEFEFEFFFE
  Data.q $B10DFF75C275FFDD,$B21CFF00B100FF0D,$F8F3FFA0D1A0FF1C,$FEFCFFFCFEFCFFF3,$FCFAFFFBFDFBFFFC
  Data.q $B100FF90CB90FFFA,$B322FF00B100FF00,$FCFAFFE0EFE0FF22,$FAF5FFF8FBF8FFFA,$F8F2FFF6FAF6FFF5
  Data.q $B10DFF95CD95FFF2,$B32AFF00B100FF0D,$FBF7FFA7D4A7FF2A,$FEFDFFFAFCFAFFF7,$FEFEFFFEFEFEFFFD
  Data.q $FEFCFFFDFEFDFFFE,$C070FFE4F0E4FFFC,$D09FFF16B216FF70,$FDFBFFF6FAF6FF9F,$FEFCFFFCFEFCFFFB
  Data.q $FBF8FFFBFDFBFFFC,$B100FF8FCA8FFFF8,$B21CFF00B100FF00,$FBF8FFDDEDDDFF1C,$FEFCFFFCFEFCFFF8
  Data.q $FCF9FFFAFCFAFFFC,$C785FFE3F0E3FFF9,$D8B2FF26B326FF85,$FEFCFFF6FAF6FFB2,$FEFDFFFCFEFCFFFC
  Data.q $FEFEFFFEFEFEFFFD,$FDFBFFFCFEFCFFFE,$EEDFFFFBFDFBFFFB,$FAF6FFBADCBAFFDF,$FEFCFFFCFEFCFFF6
  Data.q $FEFDFFFDFEFDFFFC,$FCFAFFFCFEFCFFFD,$B100FF8FCA8FFFFA,$B21CFF00B100FF00,$FCF9FFD3E8D3FF1C
  Data.q $FEFCFFFDFEFDFFF9,$FDFBFFFBFDFBFFFC,$F2E7FFFAFCFAFFFB,$F7F1FFBFDEBFFFE7,$FEFCFFFCFEFCFFF1
  Data.q $FEFDFFFCFEFCFFFC,$FEFEFFFEFEFEFFFD,$FDFBFFFEFEFEFFFE,$FDFCFFFDFEFDFFFB,$FEFDFFFCFEFCFFFC
  Data.q $FEFDFFFCFEFCFFFD,$FEFDFFFDFEFDFFFD,$FBF8FFFCFEFCFFFD,$B100FF8FCA8FFFF8,$B216FF00B100FF00
  Data.q $FDFBFFBFDEBFFF16,$FEFDFFFCFEFCFFFB,$FDFBFFFCFEFCFFFD,$FDFBFFFBFDFBFFFB,$FAF6FFFCFDFCFFFB
  Data.q $FEFCFFFCFDFCFFF6,$FEFDFFFDFEFDFFFC,$FEFEFFFEFEFEFFFD,$FEFEFFFEFEFEFFFE,$FEFEFFFEFEFEFFFE
  Data.q $FEFDFFFDFEFDFFFE,$FEFDFFFDFEFDFFFD,$FEFDFFFDFEFDFFFD,$FCF9FFFCFEFCFFFD,$B100FF90CB90FFF9
  Data.q $B10DFF00B100FF00,$FDFBFFAED7AEFF0D,$FEFDFFFCFEFCFFFB,$FEFCFFFCFEFCFFFD,$FEFCFFFCFEFCFFFC
  Data.q $FEFDFFFCFEFCFFFC,$FEFDFFFDFEFDFFFD,$FEFDFFFDFEFDFFFD,$FEFEFFFEFEFEFFFD,$FEFEFFFEFEFEFFFE
  Data.q $FEFEFFFEFEFEFFFE,$FEFDFFFEFEFEFFFE,$FEFEFFFDFEFDFFFD,$FEFEFFFEFEFEFFFE,$FEFCFFFEFEFEFFFE
  Data.q $B100FF90CB90FFFC,$B10DFF00B100FF00,$FEFDFFA5D3A5FF0D,$FEFDFFFDFEFDFFFD,$FEFCFFFDFEFDFFFD
  Data.q $FEFCFFFCFEFCFFFC,$FEFDFFFCFEFCFFFC,$FEFDFFFDFEFDFFFD,$FEFEFFFEFEFEFFFD
  Data.b $FE,$FF
  imggreen_bmp_end:
  
  imgred_bmp_start:
  ; size : 4234 bytes
  Data.q $00000000108A4D42,$007C0000008A0000,$0020000000200000,$0003002000010000,$0B13000010000000
  Data.q $000000000B130000,$0000000000000000,$00FF0000FF0000FF,$4742FF0000000000,$0000000000007352
  Data.q $0000000000000000,$0000000000000000,$0000000000000000,$0000000000000000,$0000000000000000
  Data.q $0000000000020000,$0000000000000000,$FEFEFFFFFEFE0000,$FEFEFFFFFEFEFFFF,$FDFDFFFFFEFEFFFF
  Data.q $FCFCFFFFFCFCFFFF,$FCFCFFFFFCFCFFFF,$FCFCFFFFFCFCFFFF,$E9E9FFFEFBFBFFFF,$0000FFEC5C5CFFFB
  Data.q $1C1CFFEA0000FFEA,$F7F7FFF9D8D8FFEA,$FDFDFFFEF9F9FFFE,$FCFCFFFFFCFCFFFF,$FDFDFFFFFDFDFFFF
  Data.q $FEFEFFFFFEFEFFFF,$FEFEFFFFFEFEFFFF,$FEFEFFFFFEFEFFFF,$FEFEFFFFFEFEFFFF,$FEFEFFFFFEFEFFFF
  Data.q $FDFDFFFFFEFEFFFF,$FCFCFFFEFBFBFFFF,$FCFCFFFFFCFCFFFE,$FCFCFFFFFCFCFFFF,$F2F2FFFEFBFBFFFF
  Data.q $0000FFEE7979FFFD,$2222FFEA0000FFEA,$F2F2FFFADFDFFFEA,$FCFCFFFEFAFAFFFD,$FCFCFFFFFCFCFFFF
  Data.q $FCFCFFFFFCFCFFFF,$FEFEFFFFFDFDFFFF,$FEFEFFFFFEFEFFFF,$FEFEFFFFFEFEFFFF,$FEFEFFFFFEFEFFFF
  Data.q $FEFEFFFFFEFEFFFF,$FAFAFFFFFDFDFFFF,$FBFBFFFDF6F6FFFE,$FCFCFFFFFCFCFFFE,$FCFCFFFFFCFCFFFF
  Data.q $F8F8FFFEFBFBFFFF,$0000FFF08A8AFFFE,$2222FFEA0000FFEA,$F8F8FFFAE1E1FFEA,$FCFCFFFEFCFCFFFE
  Data.q $F9F9FFFFFCFCFFFF,$F7F7FFFFFCFCFFFE,$FCFCFFFDF5F5FFFE,$FEFEFFFFFEFEFFFE,$FEFEFFFFFEFEFFFF
  Data.q $FEFEFFFFFEFEFFFF,$FDFDFFFFFEFEFFFF,$C7C7FFFEFCFCFFFF,$F4F4FFF19D9DFFF6,$FCFCFFFEFBFBFFFD
  Data.q $FCFCFFFFFCFCFFFE,$FAFAFFFEFBFBFFFF,$0000FFF08E8EFFFE,$2222FFEA0000FFEA,$FAFAFFFADFDFFFEA
  Data.q $FCFCFFFFFCFCFFFE,$FCFCFFFFFCFCFFFF,$CBCBFFFFFCFCFFFF,$F0F0FFF08E8EFFF7,$FEFEFFFFFEFEFFFC
  Data.q $FEFEFFFFFEFEFFFF,$FEFEFFFFFEFEFFFF,$F6F6FFFEF8F8FFFF,$3838FFF6C8C8FFFD,$9F9FFFEA1616FFEB
  Data.q $F9F9FFFCF0F0FFF2,$FCFCFFFEFCFCFFFE,$FBFBFFFEFCFCFFFF,$0000FFF09090FFFE,$2222FFEA0000FFEA
  Data.q $F9F9FFFAE0E0FFEA,$FCFCFFFEFBFBFFFE,$FCFCFFFFFDFDFFFF,$4D4DFFF8D6D6FFFF,$8484FFEA0D0DFFEC
  Data.q $FCFCFFFCECECFFEF,$FEFEFFFFFDFDFFFF,$FEFEFFFFFEFEFFFF,$CDCDFFFEF9F9FFFF,$0000FFEB3838FFF7
  Data.q $1616FFEA0000FFEA,$F4F4FFF19E9EFFEA,$FCFCFFFEFBFBFFFD,$FBFBFFFFFCFCFFFF,$0000FFF09090FFFE
  Data.q $2222FFEA0000FFEA,$FBFBFFFAE1E1FFEA,$FCFCFFFEFCFCFFFE,$D8D8FFFEFBFBFFFF,$0000FFEC5353FFF9
  Data.q $0D0DFFEA0000FFEA,$F6F6FFEF8585FFEA,$FEFEFFFFFCFCFFFD,$FEFEFFFFFEFEFFFF,$D8D8FFFEFBFBFFFF
  Data.q $0000FFEC5353FFF9,$0000FFEA0000FFEA,$9F9FFFEA1616FFEA,$F9F9FFFDF6F6FFF2,$F8F8FFFEF9F9FFFE
  Data.q $0000FFF08F8FFFFE,$2222FFEA0000FFEA,$FBFBFFFAE0E0FFEA,$FBFBFFFEFAFAFFFE,$5656FFF9D8D8FFFE
  Data.q $0000FFEA0000FFEC,$1616FFEA0000FFEA,$F9F9FFF2A0A0FFEA,$FEFEFFFFFEFEFFFE,$FDFDFFFFFEFEFFFF
  Data.q $F9F9FFFEFCFCFFFF,$5353FFF7CDCDFFFE,$0000FFEA0000FFEC,$1C1CFFEA0000FFEA,$F1F1FFF29F9FFFEA
  Data.q $F6F6FFFEF8F8FFFD,$0D0DFFF09090FFFD,$2222FFEA0000FFEA,$F7F7FFFADEDEFFEA,$D8D8FFFDF6F6FFFE
  Data.q $4545FFEE7C7CFFF9,$0000FFEA0D0DFFEB,$A7A7FFEA2222FFEA,$FEFEFFFEF6F6FFF2,$FEFEFFFFFEFEFFFF
  Data.q $FDFDFFFFFEFEFFFF,$F8F8FFFEF8F8FFFF,$D8D8FFFDF3F3FFFE,$1616FFEC5353FFF9,$2222FFEA2222FFEA
  Data.q $ADADFFEB3838FFEA,$F7F7FFFEF6F6FFF3,$2E2EFFF09393FFFE,$2E2EFFEB2E2EFFEB,$F8F8FFFADEDEFFEB
  Data.q $8B8BFFF9D7D7FFFE,$7979FFEF8383FFF0,$4B4BFFED6363FFEE,$F3F3FFF4B2B2FFEC,$FEFEFFFFFCFCFFFD
  Data.q $FEFEFFFFFEFEFFFF,$FDFDFFFFFDFDFFFF,$FAFAFFFEFBFBFFFF,$FCFCFFFEF9F9FFFE,$5C5CFFF8D5D5FFFF
  Data.q $4242FFEE7070FFEC,$6363FFEC5C5CFFEB,$F6F6FFF5C1C1FFED,$6565FFF19B9BFFFD,$5A5AFFED6E6EFFED
  Data.q $D7D7FFFAE0E0FFEC,$8E8EFFF09090FFF9,$8A8AFFF19797FFF0,$CACAFFEF8686FFF0,$FDFDFFFEF8F8FFF7
  Data.q $FEFEFFFFFDFDFFFF,$FEFEFFFFFEFEFFFF,$FDFDFFFFFDFDFFFF,$FCFCFFFFFCFCFFFF,$F9F9FFFEFBFBFFFF
  Data.q $D7D7FFFDF2F2FFFE,$8989FFEE7979FFF9,$8787FFED6363FFF0,$D0D0FFF29F9FFFEF,$B5B5FFF5BBBBFFF8
  Data.q $B8B8FFF5C1C1FFF4,$9B9BFFF8D4D4FFF4,$9F9FFFF09292FFF1,$9696FFF19595FFF2,$FBFBFFF9D7D7FFF1
  Data.q $FCFCFFFFFCFCFFFE,$FEFEFFFFFDFDFFFF,$FEFEFFFFFEFEFFFF,$FCFCFFFFFDFDFFFF,$FCFCFFFFFCFCFFFF
  Data.q $FCFCFFFFFCFCFFFF,$FBFBFFFEF9F9FFFE,$8F8FFFFBE6E6FFFE,$9191FFF19898FFF0,$D0D0FFF3ABABFFF0
  Data.q $F1F1FFFDF1F1FFF7,$F1F1FFFEF7F7FFFD,$AAAAFFF9DCDCFFFD,$9595FFF2A2A2FFF3,$D7D7FFF19797FFF1
  Data.q $FBFBFFFEF9F9FFF9,$FCFCFFFEFCFCFFFE,$FEFEFFFFFCFCFFFE,$FDFDFFFFFCFCFFFF,$FBFBFFFEFCFCFFFF
  Data.q $FAFAFFFEFAFAFFFE,$FBFBFFFFFCFCFFFE,$FCFCFFFEFCFCFFFE,$E2E2FFFDF4F4FFFE,$ABABFFF29F9FFFFA
  Data.q $E8E8FFF7CBCBFFF3,$9797FFF8D0D0FFFB,$ADADFFF19696FFF1,$DADAFFFBE7E7FFF3,$9898FFF2A5A5FFF9
  Data.q $FBFBFFF9D8D8FFF1,$FBFBFFFEFBFBFFFE,$F8F8FFFEFAFAFFFE,$FBFBFFFEF9F9FFFE,$FAFAFFFEFBFBFFFE
  Data.q $DFDFFFFAE0E0FFFE,$E2E2FFFADFDFFFFA,$E1E1FFFAE2E2FFFA,$E1E1FFFAE1E1FFFA,$EEEEFFFAE0E0FFFA
  Data.q $C8C8FFFBE9E9FFFC,$ADADFFFCF0F0FFF6,$0000FFEB2A2AFFF3,$0D0DFFEA0000FFEA,$DFDFFFEC5D5DFFEA
  Data.q $C5C5FFF9DADAFFFA,$DFDFFFF9DDDDFFF6,$E0E0FFFADEDEFFFA,$E1E1FFFAE1E1FFFA,$E2E2FFFAE2E2FFFA
  Data.q $DCDCFFFAE0E0FFFA,$2222FFEA2222FFF9,$2222FFEA2222FFEA,$2222FFEA2222FFEA,$3B3BFFEA2222FFEA
  Data.q $9090FFED6868FFEB,$DCDCFFF3ACACFFF0,$4747FFFBE6E6FFF9,$0000FFEA0000FFEB,$0000FFEA0000FFEA
  Data.q $A1A1FFEA0D0DFFEA,$C2C2FFFDF3F3FFF2,$2222FFEC5D5DFFF6,$2222FFEA2222FFEA,$2222FFEA2222FFEA
  Data.q $2222FFEA2222FFEA,$1C1CFFEA2222FFEA,$0000FFEA0000FFEA,$0000FFEA0000FFEA,$0000FFEA0000FFEA
  Data.q $5353FFEB2E2EFFEA,$9494FFEE7373FFEC,$EBEBFFF4B1B1FFF0,$1C1CFFF7CCCCFFFC,$0000FFEA0000FFEA
  Data.q $0000FFEA0000FFEA,$7E7EFFEA0000FFEA,$C5C5FFFCEFEFFFEF,$2626FFED6A6AFFF6,$0000FFEA0000FFEA
  Data.q $0000FFEA0000FFEA,$0000FFEA0000FFEA,$0000FFEA0000FFEA,$0000FFEA0000FFEA,$0000FFEA0000FFEA
  Data.q $0D0DFFEA0000FFEA,$6262FFEB3535FFEA,$9E9EFFEF8383FFED,$E4E4FFF3ADADFFF1,$1C1CFFF8D4D4FFFA
  Data.q $0000FFEA0000FFEA,$0000FFEA0000FFEA,$8484FFEA0000FFEA,$C4C4FFFCF0F0FFEF,$2E2EFFEE7777FFF6
  Data.q $0000FFEA0D0DFFEB,$0000FFEA0000FFEA,$0000FFEA0000FFEA,$0000FFEA0000FFEA,$2626FFEA2222FFEA
  Data.q $5A5AFFEB4747FFEA,$7878FFED6363FFEC,$9696FFEF8585FFEE,$AFAFFFF2A7A7FFF1,$DEDEFFF4B7B7FFF3
  Data.q $5C5CFFFAE2E2FFFA,$0000FFEA0000FFEC,$0000FFEA0000FFEA,$AFAFFFEA1616FFEA,$CACAFFFDF4F4FFF3
  Data.q $9292FFF29F9FFFF7,$8F8FFFF09090FFF0,$8F8FFFF08F8FFFF0,$8A8AFFF08E8EFFF0,$7878FFEF8585FFF0
  Data.q $DCDCFFFAE0E0FFEE,$EAEAFFFAE2E2FFF9,$F3F3FFFCEDEDFFFB,$F9F9FFFEF6F6FFFD,$FBFBFFFEFAFAFFFE
  Data.q $C4C4FFFCEBEBFFFE,$D6D6FFFBE5E5FFF6,$1616FFEC5A5AFFF8,$2626FFEA0D0DFFEA,$EAEAFFF2A3A3FFEA
  Data.q $AFAFFFF7CCCCFFFB,$F7F7FFFCEFEFFFF3,$F8F8FFFEFBFBFFFE,$F9F9FFFEF7F7FFFE,$F9F9FFFEF9F9FFFE
  Data.q $F4F4FFFEF8F8FFFE,$F9F9FFFFFCFCFFFD,$FCFCFFFEF9F9FFFE,$FCFCFFFFFCFCFFFF,$F7F7FFFFFCFCFFFF
  Data.q $DFDFFFFEF8F8FFFE,$ADADFFF19B9BFFFA,$E9E9FFF6C6C6FFF3,$C5C5FFFBE7E7FFFB,$DADAFFF2A5A5FFF6
  Data.q $CACAFFFCEBEBFFF9,$A1A1FFF29F9FFFF7,$F4F4FFF3AAAAFFF2,$FBFBFFFEFAFAFFFD,$FCFCFFFFFCFCFFFE
  Data.q $FBFBFFFEFBFBFFFF,$FEFEFFFFFDFDFFFE,$FCFCFFFFFCFCFFFF,$FCFCFFFFFCFCFFFF,$FCFCFFFFFCFCFFFF
  Data.q $FBFBFFFFFCFCFFFF,$6C6CFFF9D9D9FFFE,$9C9CFFEE7777FFED,$B7B7FFF2A3A3FFF1,$ECECFFF9DDDDFFF4
  Data.q $E9E9FFFBEAEAFFFC,$A8A8FFF6C8C8FFFB,$9595FFF19797FFF3,$AAAAFFF2A1A1FFF1,$F8F8FFFCF0F0FFF3
  Data.q $FCFCFFFFFCFCFFFE,$FDFDFFFFFCFCFFFF,$FEFEFFFFFDFDFFFF,$FCFCFFFFFDFDFFFF,$FCFCFFFFFCFCFFFF
  Data.q $FBFBFFFEFCFCFFFF,$D8D8FFFFFCFCFFFE,$3B3BFFEC5858FFF9,$8A8AFFEF8585FFEB,$D4D4FFF09494FFF0
  Data.q $9E9EFFF3ABABFFF8,$ABABFFF3A8A8FFF1,$A9A9FFF9D7D7FFF3,$9494FFF19B9BFFF3,$9E9EFFF19797FFF0
  Data.q $F1F1FFF2A7A7FFF1,$FAFAFFFEFAFAFFFD,$FDFDFFFEFCFCFFFE,$FEFEFFFFFDFDFFFF,$FCFCFFFFFDFDFFFF
  Data.q $FCFCFFFFFCFCFFFF,$FAFAFFFEFBFBFFFF,$5353FFF9DADAFFFE,$7575FFEB2E2EFFEC,$8989FFEE7A7AFFEE
  Data.q $FBFBFFF8D2D2FFF0,$5151FFF19494FFFE,$6565FFEC5C5CFFEC,$F1F1FFF9DDDDFFED,$8D8DFFF2A7A7FFFD
  Data.q $8A8AFFF09191FFF0,$9292FFEF8888FFF0,$F2F2FFFBE7E7FFF0,$FDFDFFFEFBFBFFFD,$FEFEFFFFFDFDFFFF
  Data.q $FDFDFFFFFDFDFFFF,$FCFCFFFFFCFCFFFF,$D8D8FFFEFCFCFFFF,$0000FFEC5353FFF9,$6868FFEB3535FFEA
  Data.q $CACAFFEF8585FFED,$FAFAFFFEFBFBFFF7,$2A2AFFF09090FFFE,$3232FFEA1C1CFFEB,$F8F8FFFADFDFFFEB
  Data.q $A4A4FFFCF0F0FFFE,$6969FFED6565FFF2,$2A2AFFEC4B4BFFED,$DCDCFFEE7979FFEB,$FCFCFFFEFAFAFFF9
  Data.q $FEFEFFFFFDFDFFFE,$FDFDFFFFFEFEFFFF,$F7F7FFFEFBFBFFFF,$5353FFF8D6D6FFFE,$0000FFEA0000FFEC
  Data.q $5656FFEA2626FFEA,$F9F9FFF6C5C5FFEC,$FBFBFFFEFBFBFFFE,$0D0DFFF09090FFFE,$2222FFEA0000FFEA
  Data.q $F9F9FFFADFDFFFEA,$EEEEFFFEF6F6FFFE,$3B3BFFF29F9FFFFC,$0000FFEA0D0DFFEB,$5F5FFFEA0D0DFFEA
  Data.q $EDEDFFF8D4D4FFED,$FDFDFFFEFAFAFFFC,$FEFEFFFFFEFEFFFF,$CECEFFFEFCFCFFFF,$0000FFEC4D4DFFF7
  Data.q $0000FFEA0000FFEA,$AEAEFFEA2222FFEA,$FCFCFFFEF8F8FFF3,$FBFBFFFFFCFCFFFF,$0000FFF09090FFFE
  Data.q $2222FFEA0000FFEA,$FBFBFFFADEDEFFEA,$E9E9FFFEF8F8FFFE,$9C9CFFFCECECFFFB,$0000FFEA1616FFF1
  Data.q $0000FFEA0000FFEA,$EBEBFFED6060FFEA,$FDFDFFFEF9F9FFFC,$FEFEFFFFFEFEFFFF,$DDDDFFFFFEFEFFFF
  Data.q $0D0DFFEE7575FFF9,$1C1CFFEA0000FFEA,$F3F3FFF2A0A0FFEA,$FCFCFFFFFCFCFFFD,$FAFAFFFEFBFBFFFF
  Data.q $0000FFF09090FFFE,$2222FFEA0000FFEA,$FAFAFFFAE0E0FFEA,$F5F5FFFEF8F8FFFE,$F2F2FFFDF6F6FFFD
  Data.q $0D0DFFF19595FFFD,$2A2AFFEA0000FFEA,$F7F7FFF2A7A7FFEB,$FDFDFFFEFAFAFFFE,$FEFEFFFFFEFEFFFF
  Data.q $FCFCFFFFFDFDFFFF,$7070FFFBE4E4FFFF,$9F9FFFEA1616FFEE,$FBFBFFFDF6F6FFF2,$FCFCFFFFFCFCFFFE
  Data.q $F8F8FFFEFBFBFFFF,$0000FFF08F8FFFFE,$1C1CFFEA0000FFEA,$F8F8FFF9DDDDFFEA,$FCFCFFFFFCFCFFFE
  Data.q $F9F9FFFEFAFAFFFF,$8585FFFAE3E3FFFE,$B2B2FFEA2626FFEF,$FCFCFFFDF6F6FFF4,$FDFDFFFFFCFCFFFF
  Data.q $FEFEFFFFFEFEFFFF,$FBFBFFFFFCFCFFFF,$DFDFFFFEFBFBFFFE,$F6F6FFF5BABAFFFA,$FCFCFFFFFCFCFFFD
  Data.q $FDFDFFFFFDFDFFFF,$FAFAFFFFFCFCFFFF,$0000FFF08F8FFFFE,$1C1CFFEA0000FFEA,$F9F9FFF8D3D3FFEA
  Data.q $FCFCFFFFFDFDFFFE,$FBFBFFFEFBFBFFFF,$E7E7FFFEFAFAFFFE,$F1F1FFF5BFBFFFFB,$FCFCFFFFFCFCFFFD
  Data.q $FDFDFFFFFCFCFFFF,$FEFEFFFFFEFEFFFF,$FBFBFFFFFEFEFFFF,$FCFCFFFFFDFDFFFE,$FDFDFFFFFCFCFFFE
  Data.q $FDFDFFFFFCFCFFFF,$FDFDFFFFFDFDFFFF,$F8F8FFFFFCFCFFFF,$0000FFF08F8FFFFE,$1616FFEA0000FFEA
  Data.q $FBFBFFF5BFBFFFEA,$FDFDFFFFFCFCFFFE,$FBFBFFFFFCFCFFFF,$FBFBFFFEFBFBFFFE,$F6F6FFFEFCFCFFFE
  Data.q $FCFCFFFEFCFCFFFD,$FDFDFFFFFDFDFFFF,$FEFEFFFFFEFEFFFF,$FEFEFFFFFEFEFFFF,$FEFEFFFFFEFEFFFF
  Data.q $FDFDFFFFFDFDFFFF,$FDFDFFFFFDFDFFFF,$FDFDFFFFFDFDFFFF,$F9F9FFFFFCFCFFFF,$0000FFF09090FFFE
  Data.q $0D0DFFEA0000FFEA,$FBFBFFF3AEAEFFEA,$FDFDFFFFFCFCFFFE,$FCFCFFFFFCFCFFFF,$FCFCFFFFFCFCFFFF
  Data.q $FDFDFFFFFCFCFFFF,$FDFDFFFFFDFDFFFF,$FDFDFFFFFDFDFFFF,$FEFEFFFFFEFEFFFF,$FEFEFFFFFEFEFFFF
  Data.q $FEFEFFFFFEFEFFFF,$FDFDFFFFFEFEFFFF,$FEFEFFFFFDFDFFFF,$FEFEFFFFFEFEFFFF,$FCFCFFFFFEFEFFFF
  Data.q $0000FFF09090FFFF,$0D0DFFEA0000FFEA,$FDFDFFF2A5A5FFEA,$FDFDFFFFFDFDFFFF,$FCFCFFFFFDFDFFFF
  Data.q $FCFCFFFFFCFCFFFF,$FDFDFFFFFCFCFFFF,$FDFDFFFFFDFDFFFF,$FEFEFFFFFEFEFFFF
  Data.b $FF,$FF
  imgred_bmp_end:
  
  imgyellow_bmp_start:
  ; size : 4234 bytes
  Data.q $00000000108A4D42,$007C0000008A0000,$0020000000200000,$0003002000010000,$0B13000010000000
  Data.q $000000000B130000,$0000000000000000,$00FF0000FF0000FF,$4742FF0000000000,$0000000000007352
  Data.q $0000000000000000,$0000000000000000,$0000000000000000,$0000000000000000,$0000000000000000
  Data.q $0000000000020000,$0000000000000000,$FEFEFFFFFEFE0000,$FEFEFFFFFEFEFFFF,$FEFDFFFFFEFEFFFF
  Data.q $FEFCFFFFFEFCFFFF,$FEFCFFFFFEFCFFFF,$FEFCFFFFFEFCFFFF,$F3E9FFFEFDFBFFFF,$B100FFEBBB5CFFFB
  Data.q $B21CFFE9B100FFE9,$FBF7FFF8EAD8FFE9,$FEFDFFFEFCF9FFFE,$FEFCFFFFFEFCFFFF,$FEFDFFFFFEFDFFFF
  Data.q $FEFEFFFFFEFEFFFF,$FEFEFFFFFEFEFFFF,$FEFEFFFFFEFEFFFF,$FEFEFFFFFEFEFFFF,$FEFEFFFFFEFEFFFF
  Data.q $FEFDFFFFFEFEFFFF,$FDFCFFFEFDFBFFFF,$FEFCFFFFFEFCFFFE,$FEFCFFFFFEFCFFFF,$F8F2FFFEFDFBFFFF
  Data.q $B100FFEDC379FFFD,$B322FFE9B100FFE9,$F8F2FFF9EEDFFFE9,$FEFCFFFEFCFAFFFD,$FEFCFFFFFEFCFFFF
  Data.q $FEFCFFFFFEFCFFFF,$FEFEFFFFFEFDFFFF,$FEFEFFFFFEFEFFFF,$FEFEFFFFFEFEFFFF,$FEFEFFFFFEFEFFFF
  Data.q $FEFEFFFFFEFEFFFF,$FCFAFFFFFEFDFFFF,$FDFBFFFDFAF6FFFE,$FEFCFFFFFEFCFFFE,$FEFCFFFFFEFCFFFF
  Data.q $FBF8FFFEFDFBFFFF,$B100FFEFC98AFFFE,$B322FFE9B100FFE9,$FBF8FFFAEFE1FFE9,$FEFCFFFEFDFCFFFE
  Data.q $FCF9FFFFFEFCFFFF,$FBF7FFFFFEFCFFFE,$FDFCFFFDF9F5FFFE,$FEFEFFFFFEFEFFFE,$FEFEFFFFFEFEFFFF
  Data.q $FEFEFFFFFEFEFFFF,$FEFDFFFFFEFEFFFF,$E2C7FFFEFDFCFFFF,$F9F4FFF1D09DFFF6,$FDFCFFFEFDFBFFFD
  Data.q $FEFCFFFFFEFCFFFE,$FCFAFFFEFDFBFFFF,$B100FFEFCA8EFFFE,$B322FFE9B100FFE9,$FCFAFFF9EEDFFFE9
  Data.q $FEFCFFFFFEFCFFFE,$FEFCFFFFFEFCFFFF,$E4CBFFFFFEFCFFFF,$F7F0FFEFCA8EFFF7,$FEFEFFFFFEFEFFFC
  Data.q $FEFEFFFFFEFEFFFF,$FEFEFFFFFEFEFFFF,$FAF6FFFEFBF8FFFF,$B538FFF6E2C8FFFD,$D09FFFE9B216FFEA
  Data.q $FCF9FFFCF7F0FFF1,$FEFCFFFEFDFCFFFE,$FDFBFFFEFDFCFFFF,$B100FFEFCB90FFFE,$B322FFE9B100FFE9
  Data.q $FCF9FFFAEEE0FFE9,$FEFCFFFEFDFBFFFE,$FEFCFFFFFEFDFFFF,$B84DFFF8E9D6FFFF,$C784FFE9B10DFFEB
  Data.q $FEFCFFFCF5ECFFEE,$FEFEFFFFFEFDFFFF,$FEFEFFFFFEFEFFFF,$E5CDFFFEFCF9FFFF,$B100FFEAB538FFF7
  Data.q $B216FFE9B100FFE9,$F9F4FFF1D09EFFE9,$FEFCFFFEFDFBFFFD,$FDFBFFFFFEFCFFFF,$B100FFEFCB90FFFE
  Data.q $B322FFE9B100FFE9,$FDFBFFFAEFE1FFE9,$FEFCFFFEFDFCFFFE,$EAD8FFFEFDFBFFFF,$B100FFEBB953FFF8
  Data.q $B10DFFE9B100FFE9,$FAF6FFEEC785FFE9,$FEFEFFFFFEFCFFFD,$FEFEFFFFFEFEFFFF,$EAD8FFFEFDFBFFFF
  Data.q $B100FFEBB953FFF8,$B100FFE9B100FFE9,$D19FFFE9B216FFE9,$FCF9FFFDFAF6FFF1,$FBF8FFFEFCF9FFFE
  Data.q $B100FFEFCA8FFFFE,$B322FFE9B100FFE9,$FDFBFFFAEFE0FFE9,$FDFBFFFEFCFAFFFE,$BA56FFF8EAD8FFFE
  Data.q $B100FFE9B100FFEB,$B216FFE9B100FFE9,$FCF9FFF1D1A0FFE9,$FEFEFFFFFEFEFFFE,$FEFDFFFFFEFEFFFF
  Data.q $FCF9FFFEFDFCFFFF,$B953FFF7E5CDFFFE,$B100FFE9B100FFEB,$B21CFFE9B100FFE9,$F7F1FFF1D09FFFE9
  Data.q $FAF6FFFEFBF8FFFD,$B10DFFEFCB90FFFD,$B322FFE9B100FFE9,$FBF7FFF9EDDEFFE9,$EAD8FFFDFAF6FFFE
  Data.q $B745FFEEC47CFFF8,$B100FFE9B10DFFEA,$D4A7FFE9B322FFE9,$FEFEFFFDFAF6FFF2,$FEFEFFFFFEFEFFFF
  Data.q $FEFDFFFFFEFEFFFF,$FBF8FFFEFBF8FFFF,$EAD8FFFDF8F3FFFE,$B216FFEBB953FFF8,$B322FFE9B322FFE9
  Data.q $D6ADFFEAB538FFE9,$FBF7FFFDFAF6FFF2,$B42EFFF0CC93FFFE,$B42EFFEAB42EFFEA,$FBF8FFF9EDDEFFEA
  Data.q $C98BFFF8EAD7FFFE,$C379FFEEC683FFEF,$B84BFFECBD63FFED,$F8F3FFF3D8B2FFEB,$FEFEFFFFFEFCFFFD
  Data.q $FEFEFFFFFEFEFFFF,$FEFDFFFFFEFDFFFF,$FCFAFFFEFDFBFFFF,$FEFCFFFEFCF9FFFE,$BB5CFFF8E9D5FFFF
  Data.q $B642FFEDC070FFEB,$BD63FFEBBB5CFFEA,$FAF6FFF5DFC1FFEC,$BE65FFF1CF9BFFFD,$BB5AFFEDC06EFFEC
  Data.q $EAD7FFFAEEE0FFEB,$CA8EFFEFCB90FFF8,$C98AFFF0CD97FFEF,$E3CAFFEFC786FFEF,$FEFDFFFEFBF8FFF6
  Data.q $FEFEFFFFFEFDFFFF,$FEFEFFFFFEFEFFFF,$FEFDFFFFFEFDFFFF,$FEFCFFFFFEFCFFFF,$FCF9FFFEFDFBFFFF
  Data.q $EAD7FFFDF8F2FFFE,$C889FFEDC379FFF8,$C887FFECBD63FFEF,$E6D0FFF1D09FFFEF,$DAB5FFF4DCBBFFF7
  Data.q $DBB8FFF5DFC1FFF4,$CF9BFFF8E8D4FFF4,$D09FFFF0CB92FFF0,$CD96FFF0CD95FFF1,$FDFBFFF8EAD7FFF0
  Data.q $FEFCFFFFFEFCFFFE,$FEFEFFFFFEFDFFFF,$FEFEFFFFFEFEFFFF,$FEFCFFFFFEFDFFFF,$FEFCFFFFFEFCFFFF
  Data.q $FDFCFFFFFEFCFFFF,$FDFBFFFEFCF9FFFE,$CA8FFFFBF1E6FFFE,$CB91FFF0CE98FFEF,$E6D0FFF2D5ABFFEF
  Data.q $F7F1FFFCF7F1FFF7,$F7F1FFFEFBF7FFFD,$D5AAFFF9ECDCFFFC,$CD95FFF1D2A2FFF2,$EAD7FFF0CD97FFF0
  Data.q $FDFBFFFEFCF9FFF8,$FDFCFFFEFDFCFFFE,$FEFEFFFFFEFCFFFE,$FEFDFFFFFEFCFFFF,$FDFBFFFEFDFCFFFF
  Data.q $FCFAFFFEFCFAFFFE,$FDFBFFFFFEFCFFFE,$FDFCFFFEFDFCFFFE,$EFE2FFFDF9F4FFFE,$D5ABFFF1D09FFFFA
  Data.q $F2E8FFF6E4CBFFF2,$CD97FFF7E6D0FFFB,$D6ADFFF0CD96FFF0,$EBDAFFFBF2E7FFF3,$CE98FFF2D3A5FFF9
  Data.q $FDFBFFF8EAD8FFF0,$FDFBFFFEFDFBFFFE,$FBF8FFFEFCFAFFFE,$FDFBFFFEFCF9FFFE,$FCFAFFFEFDFBFFFE
  Data.q $EEDFFFFAEFE0FFFE,$EFE2FFFAEEDFFFF9,$EFE1FFFAEFE2FFFA,$EFE1FFFAEFE1FFFA,$F6EEFFFAEFE0FFFA
  Data.q $E3C8FFFBF3E9FFFC,$D6ADFFFCF7F0FFF6,$B100FFEAB32AFFF3,$B10DFFE9B100FFE9,$EEDFFFECBC5DFFE9
  Data.q $E1C5FFF9EBDAFFF9,$EEDFFFF9EDDDFFF6,$EFE0FFF9EDDEFFFA,$EFE1FFFAEFE1FFFA,$EFE2FFFAEFE2FFFA
  Data.q $ECDCFFFAEFE0FFFA,$B322FFE9B322FFF9,$B322FFE9B322FFE9,$B322FFE9B322FFE9,$B53BFFE9B322FFE9
  Data.q $CB90FFECBE68FFEA,$ECDCFFF2D6ACFFEF,$B747FFFBF1E6FFF9,$B100FFE9B100FFEA,$B100FFE9B100FFE9
  Data.q $D1A1FFE9B10DFFE9,$DFC2FFFDF8F3FFF1,$B322FFECBC5DFFF5,$B322FFE9B322FFE9,$B322FFE9B322FFE9
  Data.q $B322FFE9B322FFE9,$B21CFFE9B322FFE9,$B100FFE9B100FFE9,$B100FFE9B100FFE9,$B100FFE9B100FFE9
  Data.q $B953FFEAB42EFFE9,$CC94FFEDC173FFEB,$F4EBFFF3D8B1FFF0,$B21CFFF7E4CCFFFB,$B100FFE9B100FFE9
  Data.q $B100FFE9B100FFE9,$C57EFFE9B100FFE9,$E1C5FFFCF6EFFFEE,$B326FFECBF6AFFF6,$B100FFE9B100FFE9
  Data.q $B100FFE9B100FFE9,$B100FFE9B100FFE9,$B100FFE9B100FFE9,$B100FFE9B100FFE9,$B100FFE9B100FFE9
  Data.q $B10DFFE9B100FFE9,$BD62FFEAB535FFE9,$D09EFFEEC683FFEC,$F0E4FFF3D6ADFFF1,$B21CFFF8E8D4FFFA
  Data.q $B100FFE9B100FFE9,$B100FFE9B100FFE9,$C784FFE9B100FFE9,$E0C4FFFCF7F0FFEE,$B42EFFEDC377FFF5
  Data.q $B100FFE9B10DFFEA,$B100FFE9B100FFE9,$B100FFE9B100FFE9,$B100FFE9B100FFE9,$B326FFE9B322FFE9
  Data.q $BB5AFFEAB747FFE9,$C378FFECBD63FFEB,$CD96FFEEC785FFED,$D7AFFFF2D4A7FFF0,$EDDEFFF4DBB7FFF3
  Data.q $BB5CFFFAEFE2FFF9,$B100FFE9B100FFEB,$B100FFE9B100FFE9,$D7AFFFE9B216FFE9,$E3CAFFFDF9F4FFF3
  Data.q $CB92FFF1D09FFFF6,$CA8FFFEFCB90FFF0,$CA8FFFEFCA8FFFEF,$C98AFFEFCA8EFFEF,$C378FFEEC785FFEF
  Data.q $ECDCFFFAEFE0FFED,$F4EAFFFAEFE2FFF9,$F8F3FFFCF5EDFFFB,$FCF9FFFDFAF6FFFD,$FDFBFFFEFCFAFFFE
  Data.q $E0C4FFFBF4EBFFFE,$E9D6FFFAF1E5FFF5,$B216FFEBBB5AFFF8,$B326FFE9B10DFFE9,$F4EAFFF1D2A3FFE9
  Data.q $D7AFFFF7E4CCFFFB,$FBF7FFFCF6EFFFF3,$FBF8FFFEFDFBFFFE,$FCF9FFFEFBF7FFFE,$FCF9FFFEFCF9FFFE
  Data.q $F9F4FFFEFBF8FFFE,$FCF9FFFFFEFCFFFD,$FEFCFFFEFCF9FFFE,$FEFCFFFFFEFCFFFF,$FBF7FFFFFEFCFFFF
  Data.q $EEDFFFFEFBF8FFFE,$D6ADFFF0CF9BFFF9,$F3E9FFF6E1C6FFF2,$E1C5FFFBF2E7FFFB,$EBDAFFF2D3A5FFF6
  Data.q $E3CAFFFBF4EBFFF9,$D1A1FFF1D09FFFF6,$F9F4FFF2D5AAFFF1,$FDFBFFFEFCFAFFFD,$FEFCFFFFFEFCFFFE
  Data.q $FDFBFFFEFDFBFFFF,$FEFEFFFFFEFDFFFE,$FEFCFFFFFEFCFFFF,$FEFCFFFFFEFCFFFF,$FEFCFFFFFEFCFFFF
  Data.q $FDFBFFFFFEFCFFFF,$BF6CFFF9EBD9FFFE,$CF9CFFEDC377FFEC,$DBB7FFF1D2A3FFF1,$F4ECFFF9EDDDFFF4
  Data.q $F3E9FFFBF3EAFFFC,$D4A8FFF6E3C8FFFB,$CD95FFF0CD97FFF2,$D5AAFFF1D1A1FFF0,$FBF8FFFCF7F0FFF2
  Data.q $FEFCFFFFFEFCFFFE,$FEFDFFFFFEFCFFFF,$FEFEFFFFFEFDFFFF,$FEFCFFFFFEFDFFFF,$FEFCFFFFFEFCFFFF
  Data.q $FDFBFFFEFDFCFFFF,$EAD8FFFFFEFCFFFE,$B53BFFEBBB58FFF8,$C98AFFEEC785FFEA,$E8D4FFF0CC94FFEF
  Data.q $D09EFFF2D5ABFFF8,$D5ABFFF2D4A8FFF1,$D4A9FFF8EAD7FFF2,$CC94FFF1CF9BFFF2,$D09EFFF0CD97FFF0
  Data.q $F7F1FFF2D4A7FFF1,$FCFAFFFEFCFAFFFC,$FEFDFFFEFDFCFFFE,$FEFEFFFFFEFDFFFF,$FEFCFFFFFEFDFFFF
  Data.q $FEFCFFFFFEFCFFFF,$FCFAFFFEFDFBFFFF,$B953FFF9EBDAFFFE,$C275FFEAB42EFFEB,$C889FFEEC47AFFED
  Data.q $FDFBFFF7E7D2FFEF,$B951FFF0CC94FFFE,$BE65FFEBBB5CFFEB,$F7F1FFF9EDDDFFEC,$CA8DFFF2D4A7FFFD
  Data.q $C98AFFEFCB91FFEF,$CB92FFEFC888FFEF,$F8F2FFFBF2E7FFF0,$FEFDFFFEFDFBFFFD,$FEFEFFFFFEFDFFFF
  Data.q $FEFDFFFFFEFDFFFF,$FEFCFFFFFEFCFFFF,$EAD8FFFEFDFCFFFF,$B100FFEBB953FFF8,$BE68FFEAB535FFE9
  Data.q $E3CAFFEEC785FFEC,$FCFAFFFEFDFBFFF6,$B32AFFEFCB90FFFE,$B432FFE9B21CFFEA,$FBF8FFF9EEDFFFEA
  Data.q $D3A4FFFCF7F0FFFE,$BF69FFECBE65FFF2,$B32AFFEBB84BFFEC,$ECDCFFEDC379FFEA,$FDFCFFFEFCFAFFF9
  Data.q $FEFEFFFFFEFDFFFE,$FEFDFFFFFEFEFFFF,$FBF7FFFEFDFBFFFF,$B953FFF8E9D6FFFE,$B100FFE9B100FFEB
  Data.q $BA56FFE9B326FFE9,$FCF9FFF6E1C5FFEB,$FDFBFFFEFDFBFFFE,$B10DFFEFCB90FFFE,$B322FFE9B100FFE9
  Data.q $FCF9FFF9EEDFFFE9,$F6EEFFFDFAF6FFFE,$B53BFFF1D19FFFFC,$B100FFE9B10DFFEA,$BC5FFFE9B10DFFE9
  Data.q $F5EDFFF8E8D4FFEC,$FEFDFFFEFCFAFFFC,$FEFEFFFFFEFEFFFF,$E5CEFFFEFDFCFFFF,$B100FFEBB84DFFF7
  Data.q $B100FFE9B100FFE9,$D7AEFFE9B322FFE9,$FEFCFFFEFBF8FFF3,$FDFBFFFFFEFCFFFF,$B100FFEFCB90FFFE
  Data.q $B322FFE9B100FFE9,$FDFBFFF9EDDEFFE9,$F3E9FFFEFBF8FFFE,$CF9CFFFCF5ECFFFB,$B100FFE9B216FFF1
  Data.q $B100FFE9B100FFE9,$F4EBFFECBC60FFE9,$FEFDFFFEFCF9FFFB,$FEFEFFFFFEFEFFFF,$EDDDFFFFFEFEFFFF
  Data.q $B10DFFEDC275FFF9,$B21CFFE9B100FFE9,$F8F3FFF1D1A0FFE9,$FEFCFFFFFEFCFFFD,$FCFAFFFEFDFBFFFF
  Data.q $B100FFEFCB90FFFE,$B322FFE9B100FFE9,$FCFAFFFAEFE0FFE9,$FAF5FFFEFBF8FFFE,$F8F2FFFDFAF6FFFD
  Data.q $B10DFFF0CD95FFFD,$B32AFFE9B100FFE9,$FBF7FFF2D4A7FFEA,$FEFDFFFEFCFAFFFE,$FEFEFFFFFEFEFFFF
  Data.q $FEFCFFFFFEFDFFFF,$C070FFFAF0E4FFFF,$D09FFFE9B216FFED,$FDFBFFFDFAF6FFF1,$FEFCFFFFFEFCFFFE
  Data.q $FBF8FFFEFDFBFFFF,$B100FFEFCA8FFFFE,$B21CFFE9B100FFE9,$FBF8FFF9EDDDFFE9,$FEFCFFFFFEFCFFFE
  Data.q $FCF9FFFEFCFAFFFF,$C785FFFAF0E3FFFE,$D8B2FFE9B326FFEE,$FEFCFFFDFAF6FFF3,$FEFDFFFFFEFCFFFF
  Data.q $FEFEFFFFFEFEFFFF,$FDFBFFFFFEFCFFFF,$EEDFFFFEFDFBFFFE,$FAF6FFF4DCBAFFF9,$FEFCFFFFFEFCFFFD
  Data.q $FEFDFFFFFEFDFFFF,$FCFAFFFFFEFCFFFF,$B100FFEFCA8FFFFE,$B21CFFE9B100FFE9,$FCF9FFF8E8D3FFE9
  Data.q $FEFCFFFFFEFDFFFE,$FDFBFFFEFDFBFFFF,$F2E7FFFEFCFAFFFE,$F7F1FFF5DEBFFFFB,$FEFCFFFFFEFCFFFC
  Data.q $FEFDFFFFFEFCFFFF,$FEFEFFFFFEFEFFFF,$FDFBFFFFFEFEFFFF,$FDFCFFFFFEFDFFFE,$FEFDFFFFFEFCFFFE
  Data.q $FEFDFFFFFEFCFFFF,$FEFDFFFFFEFDFFFF,$FBF8FFFFFEFCFFFF,$B100FFEFCA8FFFFE,$B216FFE9B100FFE9
  Data.q $FDFBFFF5DEBFFFE9,$FEFDFFFFFEFCFFFE,$FDFBFFFFFEFCFFFF,$FDFBFFFEFDFBFFFE,$FAF6FFFEFDFCFFFE
  Data.q $FEFCFFFEFDFCFFFD,$FEFDFFFFFEFDFFFF,$FEFEFFFFFEFEFFFF,$FEFEFFFFFEFEFFFF,$FEFEFFFFFEFEFFFF
  Data.q $FEFDFFFFFEFDFFFF,$FEFDFFFFFEFDFFFF,$FEFDFFFFFEFDFFFF,$FCF9FFFFFEFCFFFF,$B100FFEFCB90FFFE
  Data.q $B10DFFE9B100FFE9,$FDFBFFF3D7AEFFE9,$FEFDFFFFFEFCFFFE,$FEFCFFFFFEFCFFFF,$FEFCFFFFFEFCFFFF
  Data.q $FEFDFFFFFEFCFFFF,$FEFDFFFFFEFDFFFF,$FEFDFFFFFEFDFFFF,$FEFEFFFFFEFEFFFF,$FEFEFFFFFEFEFFFF
  Data.q $FEFEFFFFFEFEFFFF,$FEFDFFFFFEFEFFFF,$FEFEFFFFFEFDFFFF,$FEFEFFFFFEFEFFFF,$FEFCFFFFFEFEFFFF
  Data.q $B100FFEFCB90FFFF,$B10DFFE9B100FFE9,$FEFDFFF2D3A5FFE9,$FEFDFFFFFEFDFFFF,$FEFCFFFFFEFDFFFF
  Data.q $FEFCFFFFFEFCFFFF,$FEFDFFFFFEFCFFFF,$FEFDFFFFFEFDFFFF,$FEFEFFFFFEFEFFFF
  Data.b $FF,$FF
  imgyellow_bmp_end:
EndDataSection
WARNING: I dont know what I am doing! I just put stuff here and there and sometimes like magic it works. So please improve on my code and post your changes so I can learn more. TIA
User avatar
Lunasole
Addict
Addict
Posts: 1091
Joined: Mon Oct 26, 2015 2:55 am
Location: UA
Contact:

Re: Keeps becoming unresponsive kinda randomly?

Post by Lunasole »

Have no environment to run it. But at least without actually running programs which it runs and making connections it doesn't freeze :mrgreen:
"W̷i̷s̷h̷i̷n̷g o̷n a s̷t̷a̷r"
infratec
Always Here
Always Here
Posts: 6817
Joined: Sun Sep 07, 2008 12:45 pm
Location: Germany

Re: Keeps becoming unresponsive kinda randomly?

Post by infratec »

You should never do GUI stufff from a thread.
Use PostEvent() to to this from the main thread.

KillThread() is very unfriendly. Better send a terminating command to bash/ssh and use WaitThread() if it terminates correctly.
User avatar
netmaestro
PureBasic Bullfrog
PureBasic Bullfrog
Posts: 8425
Joined: Wed Jul 06, 2005 5:42 am
Location: Fort Nelson, BC, Canada

Re: Keeps becoming unresponsive kinda randomly?

Post by netmaestro »

One thing I see off the top is that your variable Tsrv0 is being used with IsThread and KillThread. Tsrv0 is assigned to the ThreadID and is the wrong value to use with these functions. You must use the result of CreateThread() with those, not ThreadID((CreateThread)) They won't work like that. It's analagous to using an ImageID where an Image# is expected.
BERESHEIT
Post Reply