cheat-engine/Cheat Engine/frmStringPointerScanUnit.lfm
2019-12-19 17:49:30 +01:00

989 lines
34 KiB
Text
Executable file

object frmStringPointerScan: TfrmStringPointerScan
Left = 570
Height = 530
Top = 382
Width = 813
AutoSize = True
Caption = 'Structure spider'
ClientHeight = 510
ClientWidth = 813
Menu = MainMenu1
OnClose = FormClose
OnShow = FormShow
Position = poScreenCenter
LCLVersion = '2.0.2.0'
object Panel1: TPanel
Left = 0
Height = 490
Top = 0
Width = 189
Align = alLeft
AutoSize = True
BevelOuter = bvNone
ClientHeight = 490
ClientWidth = 189
TabOrder = 0
object edtStructsize: TEdit
AnchorSideLeft.Control = lblStructsize
AnchorSideTop.Control = lblStructsize
AnchorSideTop.Side = asrBottom
Left = 87
Height = 23
Top = 23
Width = 80
TabOrder = 0
Text = '4096'
end
object lblStructsize: TLabel
AnchorSideLeft.Control = Panel5
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = Panel5
Left = 87
Height = 15
Top = 8
Width = 50
BorderSpacing.Left = 3
Caption = 'Structsize'
ParentColor = False
end
object edtRegExp: TEdit
AnchorSideLeft.Control = lblString
AnchorSideTop.Control = lblString
AnchorSideRight.Control = Panel1
AnchorSideRight.Side = asrBottom
Left = 20
Height = 23
Top = 349
Width = 165
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Right = 4
Enabled = False
TabOrder = 9
end
object cbMustBeStart: TCheckBox
AnchorSideLeft.Control = cbRegExp
AnchorSideTop.Control = cbCaseSensitive
AnchorSideTop.Side = asrBottom
Left = 20
Height = 19
Top = 330
Width = 89
Caption = 'Must be start'
Enabled = False
TabOrder = 8
end
object cbCaseSensitive: TCheckBox
AnchorSideLeft.Control = cbRegExp
AnchorSideTop.Control = cbRegExp
AnchorSideTop.Side = asrBottom
Left = 20
Height = 19
Top = 311
Width = 93
Caption = 'Case sensitive'
Enabled = False
TabOrder = 7
end
object cbRegExp: TCheckBox
AnchorSideLeft.Control = rbStringscan
AnchorSideTop.Control = cbReuseStringmap
AnchorSideTop.Side = asrBottom
Left = 20
Height = 19
Top = 292
Width = 165
BorderSpacing.Left = 16
BorderSpacing.Right = 4
Caption = 'Strings must match reg exp'
OnChange = cbRegExpChange
TabOrder = 6
end
object rbStringscan: TRadioButton
AnchorSideLeft.Control = Panel4
AnchorSideTop.Control = Panel4
AnchorSideTop.Side = asrBottom
Left = 4
Height = 19
Top = 254
Width = 78
Caption = 'String scan'
OnChange = rbDatascanChange
TabOrder = 5
end
object rbDatascan: TRadioButton
AnchorSideLeft.Control = rbStringscan
AnchorSideTop.Control = edtRegExp
AnchorSideTop.Side = asrBottom
Left = 4
Height = 19
Top = 372
Width = 71
Caption = 'Data scan'
OnChange = rbDatascanChange
TabOrder = 10
end
object edtAlignsize: TEdit
AnchorSideLeft.Control = lblAlign
AnchorSideTop.Control = lblAlign
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = Panel1
AnchorSideRight.Side = asrBottom
Left = 20
Height = 23
Top = 406
Width = 165
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Right = 4
Enabled = False
TabOrder = 11
Text = '4'
end
object lblAlign: TLabel
AnchorSideLeft.Control = rbDatascan
AnchorSideTop.Control = rbDatascan
AnchorSideTop.Side = asrBottom
Left = 20
Height = 15
Top = 391
Width = 47
BorderSpacing.Left = 16
Caption = 'Alignsize'
Enabled = False
ParentColor = False
end
object edtPointerStart: TEdit
AnchorSideLeft.Control = cbPointerInRange
AnchorSideTop.Control = cbPointerInRange
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = Panel1
AnchorSideRight.Side = asrBottom
Left = 4
Height = 23
Top = 67
Width = 181
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Right = 4
Enabled = False
TabOrder = 2
end
object cbPointerInRange: TCheckBox
AnchorSideLeft.Control = Panel5
AnchorSideTop.Control = Panel5
AnchorSideTop.Side = asrBottom
Left = 4
Height = 19
Top = 48
Width = 150
BorderSpacing.Top = 2
Caption = 'Pointer must be in range'
OnChange = cbPointerInRangeChange
TabOrder = 1
end
object lblAnd: TLabel
AnchorSideLeft.Control = cbPointerInRange
AnchorSideTop.Control = edtPointerStart
AnchorSideTop.Side = asrBottom
Left = 4
Height = 15
Top = 90
Width = 20
Caption = 'and'
Enabled = False
ParentColor = False
end
object edtPointerStop: TEdit
AnchorSideLeft.Control = cbPointerInRange
AnchorSideTop.Control = lblAnd
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = Panel1
AnchorSideRight.Side = asrBottom
Left = 4
Height = 23
Top = 105
Width = 181
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Right = 4
Enabled = False
TabOrder = 3
end
object lblString: TLabel
AnchorSideLeft.Control = cbMustBeStart
AnchorSideTop.Control = cbMustBeStart
AnchorSideTop.Side = asrBottom
Left = 20
Height = 15
Top = 349
Width = 34
Caption = 'String:'
Enabled = False
ParentColor = False
end
object Panel4: TPanel
AnchorSideLeft.Control = edtPointerStop
AnchorSideTop.Control = edtPointerStop
AnchorSideTop.Side = asrBottom
Left = 4
Height = 122
Top = 132
Width = 148
AutoSize = True
BorderSpacing.Top = 4
BevelOuter = bvNone
ClientHeight = 122
ClientWidth = 148
TabOrder = 4
object rbDiffDontCare: TRadioButton
AnchorSideLeft.Control = Panel4
AnchorSideTop.Control = Panel4
Left = 0
Height = 19
Top = 0
Width = 148
Caption = 'Don''t care for difference'
Checked = True
Enabled = False
OnChange = rbDiffDontCareChange
TabOrder = 0
TabStop = True
end
object rbMustBeDifferent: TRadioButton
AnchorSideLeft.Control = Panel4
AnchorSideTop.Control = rbDiffDontCare
AnchorSideTop.Side = asrBottom
Left = 0
Height = 19
Top = 19
Width = 111
Caption = 'Must be different'
Enabled = False
OnChange = rbDiffDontCareChange
TabOrder = 1
end
object rbMustBeSame: TRadioButton
AnchorSideLeft.Control = Panel4
AnchorSideTop.Control = rbMustBeDifferent
AnchorSideTop.Side = asrBottom
Left = 0
Height = 19
Top = 38
Width = 114
Caption = 'Must be the same'
Enabled = False
OnChange = rbDiffDontCareChange
TabOrder = 2
end
object comboCompareType: TComboBox
AnchorSideLeft.Control = Panel4
AnchorSideTop.Control = lblCompare
AnchorSideTop.Side = asrBottom
Left = 16
Height = 23
Top = 72
Width = 124
BorderSpacing.Left = 16
Enabled = False
ItemHeight = 15
ItemIndex = 3
Items.Strings = (
'String'
'1 Byte'
'2 Bytes'
'4 Bytes'
'8 Bytes'
'Float'
'Double'
'Pointer (hex)'
)
OnChange = comboTypeChange
Style = csDropDownList
TabOrder = 3
Text = '4 Bytes'
end
object lblCompare: TLabel
AnchorSideLeft.Control = Panel4
AnchorSideTop.Control = rbMustBeSame
AnchorSideTop.Side = asrBottom
Left = 0
Height = 15
Top = 57
Width = 75
Caption = 'Compare type'
Enabled = False
ParentColor = False
end
object cbMapPointerValues: TCheckBox
AnchorSideLeft.Control = Panel4
AnchorSideTop.Control = comboCompareType
AnchorSideTop.Side = asrBottom
Left = 0
Height = 19
Hint = 'During the scan the values of pointer will be stored in memory for quick lookup when the same address is encountered again'#13#10'If the pointerlist has mostly unique addresses this can cause you to get out of memory errors'#13#10#13#10'Enabled: Fast- Memory gobbler'#13#10'Disabled: Slower- Not too much memory eaten'
Top = 103
Width = 148
BorderSpacing.Top = 8
Caption = 'Store values during scan'
Checked = True
ParentShowHint = False
ShowHint = True
State = cbChecked
TabOrder = 4
end
end
object Panel5: TPanel
AnchorSideLeft.Control = Panel1
AnchorSideTop.Control = Panel1
Left = 4
Height = 38
Top = 8
Width = 80
AutoSize = True
BorderSpacing.Left = 4
BorderSpacing.Top = 8
BevelOuter = bvNone
ClientHeight = 38
ClientWidth = 80
TabOrder = 12
object edtMaxLevel: TEdit
AnchorSideLeft.Control = Panel5
AnchorSideTop.Control = lblMaxLevel
AnchorSideTop.Side = asrBottom
Left = 0
Height = 23
Top = 15
Width = 80
TabOrder = 0
Text = '2'
end
object lblMaxLevel: TLabel
AnchorSideLeft.Control = Panel5
AnchorSideTop.Control = Panel5
Left = 0
Height = 15
Top = 0
Width = 53
Caption = 'Max Level'
ParentColor = False
end
end
object Panel8: TPanel
AnchorSideLeft.Control = Panel1
AnchorSideTop.Control = Panel9
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = Panel1
AnchorSideRight.Side = asrBottom
AnchorSideBottom.Control = Panel1
AnchorSideBottom.Side = asrBottom
Left = 0
Height = 22
Top = 468
Width = 189
Anchors = [akTop, akLeft, akRight, akBottom]
AutoSize = True
BevelOuter = bvNone
ClientHeight = 22
ClientWidth = 189
TabOrder = 13
object lblInfo: TLabel
Left = 0
Height = 15
Top = 7
Width = 189
Align = alBottom
Caption = 'Info'
ParentColor = False
end
end
object Panel9: TPanel
AnchorSideLeft.Control = Panel1
AnchorSideTop.Control = edtAlignsize
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = Panel1
AnchorSideRight.Side = asrBottom
Left = 0
Height = 39
Top = 429
Width = 189
Anchors = [akTop, akLeft, akRight]
AutoSize = True
BevelOuter = bvNone
ChildSizing.LeftRightSpacing = 8
ChildSizing.HorizontalSpacing = 8
ChildSizing.EnlargeHorizontal = crsHomogenousSpaceResize
ChildSizing.Layout = cclLeftToRightThenTopToBottom
ChildSizing.ControlsPerLine = 2
ClientHeight = 39
ClientWidth = 189
TabOrder = 14
object btnNewScan: TButton
AnchorSideLeft.Side = asrCenter
Left = 10
Height = 25
Top = 7
Width = 80
AutoSize = True
BorderSpacing.Top = 7
BorderSpacing.Bottom = 7
Caption = 'New Scan'
Constraints.MinWidth = 80
OnClick = miNewScanClick
TabOrder = 0
Visible = False
end
object btnScan: TButton
AnchorSideLeft.Side = asrCenter
Left = 100
Height = 25
Top = 7
Width = 80
AutoSize = True
BorderSpacing.Left = 7
BorderSpacing.Top = 7
BorderSpacing.Right = 4
BorderSpacing.Bottom = 7
Caption = 'Scan'
Constraints.MinWidth = 80
OnClick = btnScanClick
TabOrder = 1
end
end
object cbReuseStringmap: TCheckBox
AnchorSideLeft.Control = rbStringscan
AnchorSideTop.Control = rbStringscan
AnchorSideTop.Side = asrBottom
Left = 20
Height = 19
Top = 273
Width = 140
BorderSpacing.Left = 16
Caption = 'Use existing stringmap'
Checked = True
OnChange = cbReuseStringmapChange
State = cbChecked
TabOrder = 15
end
end
object Panel2: TPanel
Left = 189
Height = 490
Top = 0
Width = 624
Align = alClient
BevelOuter = bvNone
ClientHeight = 490
ClientWidth = 624
TabOrder = 1
object ListView1: TListView
Left = 0
Height = 354
Top = 136
Width = 624
Align = alClient
Columns = <>
HideSelection = False
OwnerData = True
PopupMenu = pmPointerfile
ReadOnly = True
RowSelect = True
TabOrder = 0
ViewStyle = vsReport
OnCustomDrawItem = ListView1CustomDrawItem
OnData = ListView1Data
OnDblClick = ListView1DblClick
end
object Panel3: TPanel
Left = 0
Height = 136
Top = 0
Width = 624
Align = alTop
AutoSize = True
BevelOuter = bvNone
ClientHeight = 136
ClientWidth = 624
TabOrder = 1
OnClick = Panel3Click
object lblExtra: TLabel
AnchorSideLeft.Control = Panel6
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = Panel6
Left = 133
Height = 15
Top = 8
Width = 90
BorderSpacing.Left = 6
Caption = 'Compare against'
ParentColor = False
end
object edtExtra: TEdit
AnchorSideLeft.Control = lblExtra
AnchorSideTop.Control = lblExtra
AnchorSideTop.Side = asrBottom
Left = 133
Height = 23
Top = 23
Width = 127
OnChange = edtExtraChange
TabOrder = 0
end
object cbHasShadow2: TCheckBox
AnchorSideLeft.Control = lblExtra
AnchorSideTop.Control = edtExtra
AnchorSideTop.Side = asrBottom
Left = 133
Height = 19
Hint = 'Use this if you''re spidering a previously saved memory region that currently resides in a different location.'#13#10'Most commonly used for stacks where stack pointers point to it''s own structure'
Top = 48
Width = 85
BorderSpacing.Top = 2
Caption = 'Has Shadow'
OnChange = cbHasShadowChange
ParentShowHint = False
ShowHint = True
TabOrder = 1
end
object edtShadowAddress2: TEdit
AnchorSideLeft.Control = lblExtra
AnchorSideTop.Control = cbHasShadow2
AnchorSideTop.Side = asrBottom
Left = 133
Height = 23
Top = 67
Width = 127
OnChange = edtBaseChange
TabOrder = 2
Visible = False
end
object lblsize2: TLabel
AnchorSideLeft.Control = lblExtra
AnchorSideTop.Control = edtShadowAddress2
AnchorSideTop.Side = asrBottom
Left = 133
Height = 15
Top = 90
Width = 20
Caption = 'Size'
ParentColor = False
Visible = False
end
object edtShadowSize2: TEdit
AnchorSideLeft.Control = lblExtra
AnchorSideTop.Control = lblsize2
AnchorSideTop.Side = asrBottom
Left = 133
Height = 23
Top = 105
Width = 80
BorderSpacing.Bottom = 8
OnChange = edtBaseChange
TabOrder = 3
Visible = False
end
object Panel6: TPanel
AnchorSideLeft.Control = Panel3
AnchorSideTop.Control = Panel3
Left = 0
Height = 120
Top = 8
Width = 127
AutoSize = True
BorderSpacing.Top = 8
BorderSpacing.Bottom = 8
BevelOuter = bvNone
ClientHeight = 120
ClientWidth = 127
TabOrder = 4
object edtShadowSize: TEdit
AnchorSideLeft.Control = lblSize
AnchorSideTop.Control = lblSize
AnchorSideTop.Side = asrBottom
Left = 0
Height = 23
Top = 97
Width = 80
OnChange = edtBaseChange
TabOrder = 0
Visible = False
end
object lblSize: TLabel
AnchorSideLeft.Control = Panel6
AnchorSideTop.Control = edtShadowAddress
AnchorSideTop.Side = asrBottom
Left = 0
Height = 15
Top = 82
Width = 20
Caption = 'Size'
ParentColor = False
Visible = False
end
object edtShadowAddress: TEdit
AnchorSideLeft.Control = cbHasShadow
AnchorSideTop.Control = cbHasShadow
AnchorSideTop.Side = asrBottom
Left = 0
Height = 23
Top = 59
Width = 127
OnChange = edtBaseChange
TabOrder = 1
Visible = False
end
object cbHasShadow: TCheckBox
AnchorSideLeft.Control = Panel6
AnchorSideTop.Control = edtBase
AnchorSideTop.Side = asrBottom
Left = 0
Height = 19
Hint = 'Use this if you''re spidering a previously saved memory region that currently resides in a different location.'#13#10'Most commonly used for stacks where stack pointers point to it''s own structure'
Top = 40
Width = 85
BorderSpacing.Top = 2
Caption = 'Has Shadow'
OnChange = cbHasShadowChange
ParentShowHint = False
ShowHint = True
TabOrder = 2
end
object edtBase: TEdit
AnchorSideLeft.Control = Panel6
AnchorSideTop.Control = lblBaseRegion
AnchorSideTop.Side = asrBottom
Left = 0
Height = 23
Top = 15
Width = 127
OnChange = edtBaseChange
TabOrder = 3
end
object lblBaseRegion: TLabel
AnchorSideLeft.Control = Panel6
AnchorSideTop.Control = Panel6
Left = 0
Height = 15
Top = 0
Width = 61
Caption = 'Base region'
ParentColor = False
end
end
object Panel7: TPanel
AnchorSideLeft.Control = edtExtra
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = Panel3
AnchorSideRight.Control = Panel3
AnchorSideRight.Side = asrBottom
AnchorSideBottom.Control = Panel3
AnchorSideBottom.Side = asrBottom
Left = 268
Height = 136
Top = 0
Width = 356
Anchors = [akTop, akLeft, akRight, akBottom]
AutoSize = True
BorderSpacing.Left = 8
BevelOuter = bvNone
ClientHeight = 136
ClientWidth = 356
TabOrder = 5
object lblvds: TLabel
AnchorSideTop.Control = Panel7
AnchorSideRight.Control = Panel7
AnchorSideRight.Side = asrBottom
Left = 249
Height = 15
Top = 8
Width = 107
Anchors = [akTop, akRight]
BorderSpacing.Top = 8
Caption = 'Variable display type'
ParentColor = False
end
object comboType: TComboBox
AnchorSideTop.Control = lblvds
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = Panel7
AnchorSideRight.Side = asrBottom
Left = 232
Height = 23
Top = 23
Width = 124
Anchors = [akTop, akRight]
ItemHeight = 15
ItemIndex = 0
Items.Strings = (
'String'
'1 Byte'
'2 Bytes'
'4 Bytes'
'8 Bytes'
'Float'
'Double'
'Pointer (hex)'
)
OnChange = comboTypeChange
Style = csDropDownList
TabOrder = 0
Text = 'String'
end
end
end
end
object ProgressBar1: TProgressBar
Left = 0
Height = 20
Top = 490
Width = 813
Align = alBottom
Max = 1000
TabOrder = 2
end
object SaveDialog1: TSaveDialog
DefaultExt = '.sptr'
Filter = 'String pointer (*.sptr)|*.sptr'
Options = [ofOverwritePrompt, ofEnableSizing, ofViewDetail]
left = 480
top = 64
end
object MainMenu1: TMainMenu
Images = spImageList
left = 197
top = 168
object MenuItem1: TMenuItem
Caption = 'File'
object MenuItem7: TMenuItem
Caption = 'New Window'
ImageIndex = 0
OnClick = MenuItem7Click
end
object MenuItem4: TMenuItem
Caption = '-'
end
object miNewScan: TMenuItem
Caption = 'New scan'
ImageIndex = 1
OnClick = miNewScanClick
end
object miOpen: TMenuItem
Caption = 'Open'
ImageIndex = 2
OnClick = miOpenClick
end
end
object MenuItem5: TMenuItem
Caption = 'Rescan'
Visible = False
object MenuItem6: TMenuItem
Caption = 'Filter pointerlist'
OnClick = MenuItem6Click
end
end
end
object OpenDialog1: TOpenDialog
DefaultExt = '.sptr'
Filter = 'String pointer (*.sptr)|*.sptr'
left = 552
top = 64
end
object statusupdater: TTimer
Enabled = False
Interval = 500
OnTimer = statusupdaterTimer
left = 464
top = 208
end
object pmPointerfile: TPopupMenu
Images = spImageList
left = 400
top = 112
object miClearCache: TMenuItem
Caption = 'Clear pointer cache'
ImageIndex = 4
OnClick = miClearCacheClick
end
object miFind: TMenuItem
Caption = 'Find...'
ImageIndex = 3
ShortCut = 16454
OnClick = miFindClick
end
object miFindNext: TMenuItem
Caption = 'Find Next'
Enabled = False
ShortCut = 114
OnClick = FindDialog1Find
end
end
object FindDialog1: TFindDialog
Options = [frDown, frHideWholeWord, frHideUpDown, frDisableUpDown, frHideEntireScope, frHidePromptOnReplace]
OnFind = FindDialog1Find
left = 268
top = 243
end
object spImageList: TImageList
left = 430
top = 307
Bitmap = {
4C69050000001000000010000000C47B27FFE08D2CFFE08D2CFFE08D2CFFE08D
2CFFE08D2CFFE08D2CFFE08D2CFFE08D2CFFE0872CFFE0832CFFE0892CFFE082
2CFFE08A2CFFE0822CFFC47827FFE08D2CFFFFA133FFFFA133FFFFA133FFFFA1
33FFFFA133FFFFA133FFFFA133FFFFA133FFFF9233FFFF8633FFFF9733FFFF83
33FFFF9933FFFF8333FFE0842CFFE09742FFFFC57FFFFFC57FFFFFC57FFFFFC5
7FFFFFC57FFFFFC57FFFFFC57FFFFFC57FFFFFC47FFFFFC47FFFFFC47FFFFFC4
7FFFFFC47FFFFFC47FFFE09742FFE0A866FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFE0A866FFE0A866FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFE9D2FFFFE9D2FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFE0A866FFE0A866FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFAF60FFFFAF60FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFE0A866FFE0A866FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFAF60FFFFAF60FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFE0A866FFE0A866FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFAF60FFFFAF60FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFE0A866FFE0A866FFFFFFFFFFFFFFFFFFFFE3C6FFFFB9
73FFFFB973FFFFB973FFFFA041FFFFA041FFFFB973FFFFB973FFFFB973FFFFE3
C6FFFFFFFFFFFFFFFFFFE0A866FFE0A866FFFFFFFFFFFFFFFFFFFFDAB4FFFFA3
46FFFFA346FFFFA346FFFF9B37FFFF9B37FFFFA346FFFFA346FFFFA346FFFFDA
B4FFFFFFFFFFFFFFFFFFE0A866FFE0A866FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFAF60FFFFAF60FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFE0A866FFE0A866FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFAF60FFFFAF60FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFE0A866FFE0A866FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFAF60FFFFAF60FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFE0A866FFE0A866FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFD7B0FFFFD7B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFE0A866FFE0A866FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFE0A866FFC48439FFE0AA6CFFE0AA6CFFE0AA6CFFE0AA
6CFFE0AA6CFFE0AA6CFFE0AA6CFFE0AA6CFFE0AA6CFFE0AA6CFFE0AA6CFFE0AA
6CFFE0AA6CFFE0AA6CFFC48439FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFF4E90EFFA64CE0FFA64CE0FFF4E90EFFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFF3E610FF9933FFFF9933FFFFF3E610FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFF3E610FF9933FFFF9933FFFFF3E610FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFF3E610FF9933FFFF9933FFFFF3E610FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFF4E90EFFF3E610FFF3
E610FFF3E610FFE7D01FFF9933FFFF9933FFFFE7D01FFFF3E610FFF3E610FFF3
E610FFF4E90EFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFA64CE0FF9933FFFF99
33FFFF9933FFFF9933FFFF9933FFFF9933FFFF9933FFFF9933FFFF9933FFFF99
33FFFFA64CE0FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFA64CE0FF9933FFFF99
33FFFF9933FFFF9933FFFF9933FFFF9933FFFF9933FFFF9933FFFF9933FFFF99
33FFFFA64CE0FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFF4E90EFFF3E610FFF3
E610FFF3E610FFE7D01FFF9933FFFF9933FFFFE7D01FFFF3E610FFF3E610FFF3
E610FFF4E90EFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFF3E610FF9933FFFF9933FFFFF3E610FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFF3E610FF9933FFFF9933FFFFF3E610FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFF3E610FF9933FFFF9933FFFFF3E610FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFF4E90EFFA64CE0FFA64CE0FFF4E90EFFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00D8D9D81D3E7133B9E8E8
E810FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00E8E8E8103A9028D538D417FF488B
39C0F4F4F407FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00F4F4F407448836C138D417FF38D417FF37D2
16FF56884BA8FCFCFC01FFFFFF008EABAF8092B9BF8092B9BF80AEBCBE4DFFFF
FF00FFFFFF00FFFFFF00FFFFFF004659429124890EE833C415FF38D417FF33C4
15FF23840EE85F695D76FFFFFF0038ADBEFF4BE6FEFF4BE6FEFF41C9DDFD96AA
AD65FFFFFF00FFFFFF00FFFFFF00FFFFFF00E0E0E0082BA612FF38D417FF2BA6
12FFE0E0E008FFFFFF00FFFFFF0038ADBEFF4BE6FEFF4BE6FEFF4BE6FEFF43CE
E3FF469DAAD14AA1AED04AA1AECF489AA6C842929EC92BA612FF38D417FF2BA6
12FF638D939EFFFFFF00FFFFFF0038ADBEFF4BE6FEFF4BE6FEFF4BE6FEFF4BE6
FEFF4BE6FEFF4BE6FEFF4BE6FEFF4BE6FEFF48DFF6FF2BA612FF38D417FF2BA6
12FF479AA6D0FFFFFF00FFFFFF0038ADBEFF4BE6FEFF4BE6FEFF4BE6FEFF4BE6
FEFF4BE6FEFF4BE6FEFF4BE6FEFF4BE6FEFF48DFF6FF2BA612FF38D417FF2BA6
12FF479AA6D0FFFFFF00FFFFFF0038ADBEFF4BE6FEFF2496ADFF108FAFFF108F
AFFF108FAFFF108FAFFF108FAFFF108FAFFF0F8DAEFF0A8383FF0C8B84FF0A83
83FF0D7E9DF72283A0D0296374BC38ADBEFF47DBF1FF068BB0FF04B1E3FF04B1
E3FF04B1E3FF04B1E3FF04B1E3FF04B1E3FF04B1E3FF04B1E3FF04B1E3FF04B1
E3FF04B1E3FF04B1E3FF5992A29938ADBEFF2EA2B6FF03AFE1FF04B1E3FF04B1
E3FF04B1E3FF04B1E3FF04B1E3FF04B1E3FF04B1E3FF04B1E3FF04B1E3FF04B1
E3FF04B1E3FF03A9D9FFB0B6B84438ADBEFF138CAAFF04B1E3FF04B1E3FF04B1
E3FF04B1E3FF04B1E3FF04B1E3FF04B1E3FF04B1E3FF04B1E3FF04B1E3FF04B1
E3FF04B1E3FF0E7FA0E9F8F8F8032C8997FF039BC7FF04B1E3FF04B1E3FF04B1
E3FF04B1E3FF04B1E3FF04B1E3FF04B1E3FF04B1E3FF04B1E3FF04B1E3FF04B1
E3FF04B1E3FF5D94A496FFFFFF00105E71FF04B1E3FF04B1E3FF04B1E3FF04B1
E3FF04B1E3FF04B1E3FF04B1E3FF04B1E3FF04B1E3FF04B1E3FF04B1E3FF04B1
E3FF03A7D7FFB0B6B741FFFFFF00215868D52283A0D82283A0D82283A0D82283
A0D82283A0D82283A0D82283A0D82283A0D82283A0D82283A0D82283A0D82283
A0D8296F83C8F8F8F802FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00A0A0A060808080C0808080C08080
80C0808080C0808080C0808080C0808080C0808080C0808080C0747474BFBCBC
BC35FFFFFF00FFFFFF00FFFFFF00FFFFFF0080808080FFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6767
67E6D8D8D81BFFFFFF00FFFFFF00FFFFFF0080808080FFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F6
F6FF5C5C5CCCF0F0F009FFFFFF00FFFFFF0080808080FFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFBABABAFF888888FF8C8C8CFF888888FFB7B7B7FFFFFFFFFFFFFF
FFFFE5E5E5FF84848476FFFFFF00FFFFFF0080808080FFFFFFFFFFFFFFFFF7F7
F7FF7D7D7DFFC3C3C3FFFFFFFFFFFFFFFFFFFFFFFFFFC6C6C6FF7B7B7BFFF6F6
F6FFFFFFFFFF80808080FFFFFF00FFFFFF0080808080FFFFFFFFFFFFFFFF8787
87FFE7E7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEAEAEAFF8484
84FFFFFFFFFF80808080FFFFFF00FFFFFF0080808080FFFFFFFFE4E4E4FF9C9C
9CFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA2A2
A2FFDFDFDFFF80808080FFFFFF00FFFFFF0080808080FFFFFFFFAEAEAEFFDCDC
DCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2E2
E2FFA7A7A7FF80808080FFFFFF00FFFFFF0080808080FFFFFFFFA5A5A5FFE6E6
E6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEDED
EDFF9F9F9FFF80808080FFFFFF00FFFFFF0080808080FFFFFFFFCBCBCBFFBABA
BAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0C0
C0FFC5C5C5FF80808080FFFFFF00FFFFFF0080808080FFFFFFFFFEFEFEFF7A7A
7AFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7A7A
7AFFFDFDFDFF80808080FFFFFF00FFFFFF0080808080FFFFFFFFFFFFFFFFD5D5
D5FF858585FFFAFAFAFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBFF7B7B7BFF8483
83FFFFFFFFFF80808080FFFFFF00FFFFFF0080808080FFFFFFFFFFFFFFFFFFFF
FFFFDFDFDFFF838383FF8E8E8EFFA4A4A4FF8F8F8FFF828282FF9E9E9EFF1F1E
1EFFA19E9DFF80808080FFFFFF00FFFFFF0080808080FFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFF9F9F9FFE7E7E7FFF9F9F9FFFFFFFFFFFFFFFFFFB9B7
B6FF260D09FF746A6893FFFFFF00FFFFFF0080808080FFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFBEB6B4FF1E0400FEA89D9C54FFFFFF00A0A0A060808080C0808080C08080
80C0808080C0808080C0808080C0808080C0808080C0808080C0808080C08080
80C0808080C06C656496D2CDCC25FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00ECEBFF0D655D
FFA6DFDEFF1EFFFFFF00FFFFFF00FFFFFF00FFFFFF00DFDEFF1E655DFFA6ECEB
FF0DFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00655DFFA63227
FFFF453BFFDEDFDEFF1EFFFFFF00FFFFFF00DFDEFF1E453BFFDE3227FFFF655D
FFA6FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00DFDEFF1E453B
FFDE3227FFFF453BFFDEDFDEFF1EDFDEFF1E453BFFDE3227FFFF453BFFDEDFDE
FF1EFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00DFDE
FF1E453BFFDE3227FFFF453BFFDE453BFFDE3227FFFF453BFFDEDFDEFF1EFFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00DFDEFF1E453BFFDE3227FFFF3227FFFF453BFFDEDFDEFF1EFFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00DFDEFF1E453BFFDE3227FFFF3227FFFF453BFFDEDFDEFF1EFFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00DFDE
FF1E453BFFDE3227FFFF453BFFDE453BFFDE3227FFFF453BFFDEDFDEFF1EFFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00DFDEFF1E453B
FFDE3227FFFF453BFFDEDFDEFF1EDFDEFF1E453BFFDE3227FFFF453BFFDEDFDE
FF1EFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00655DFFA63227
FFFF453BFFDEDFDEFF1EFFFFFF00FFFFFF00DFDEFF1E453BFFDE3227FFFF655D
FFA6FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00ECEBFF0D655D
FFA6DFDEFF1EFFFFFF00FFFFFF00FFFFFF00FFFFFF00DFDEFF1E655DFFA6ECEB
FF0DFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00
}
end
end