commit 2de33b3101c727c0fa2ba0d3fd6495258b024c59 Author: 4aiman <4aiman@inbox.ru> Date: Mon Apr 20 13:01:23 2020 +0300 Initial Dirty Commit diff --git a/README.md b/README.md new file mode 100644 index 0000000..83607d8 Binary files /dev/null and b/README.md differ diff --git a/ToZcalc.ctpr b/ToZcalc.ctpr new file mode 100644 index 0000000..8461be8 --- /dev/null +++ b/ToZcalc.ctpr @@ -0,0 +1,98 @@ + + + + + + + + + + + + <Scaled Value="True"/> + <ResourceType Value="res"/> + <UseXPManifest Value="True"/> + <XPManifest> + <DpiAware Value="True"/> + </XPManifest> + <Icon Value="0"/> + </General> + <BuildModes Count="1"> + <Item1 Name="Default" Default="True"/> + </BuildModes> + <PublishOptions> + <Version Value="2"/> + </PublishOptions> + <RunParams> + <FormatVersion Value="2"/> + </RunParams> + <RequiredPackages Count="3"> + <Item1> + <PackageName Value="pl_ExControls"/> + </Item1> + <Item2> + <PackageName Value="pl_BGRAcontrols"/> + </Item2> + <Item3> + <PackageName Value="adLCL"/> + </Item3> + </RequiredPackages> + <Units Count="2"> + <Unit0> + <Filename Value="ToZcalc.ppr"/> + <IsPartOfProject Value="True"/> + </Unit0> + <Unit1> + <Filename Value="main.pas"/> + <IsPartOfProject Value="True"/> + <ComponentName Value="Form1"/> + <HasResources Value="True"/> + <ResourceBaseClass Value="Form"/> + </Unit1> + </Units> + </ProjectOptions> + <CompilerOptions> + <Version Value="11"/> + <PathDelim Value="\"/> + <Target> + <Filename Value="ToZcalc"/> + </Target> + <SearchPaths> + <IncludeFiles Value="$(ProjOutDir)"/> + <UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/> + </SearchPaths> + <CodeGeneration> + <SmartLinkUnit Value="True"/> + <RelocatableUnit Value="True"/> + </CodeGeneration> + <Linking> + <Debugging> + <UseExternalDbgSyms Value="True"/> + </Debugging> + <LinkSmart Value="True"/> + <Options> + <Win32> + <GraphicApplication Value="True"/> + </Win32> + </Options> + </Linking> + <Other> + <Verbosity> + <ShowDebugInfo Value="True"/> + </Verbosity> + </Other> + </CompilerOptions> + <Debugging> + <Exceptions Count="3"> + <Item1> + <Name Value="EAbort"/> + </Item1> + <Item2> + <Name Value="ECodetoolError"/> + </Item2> + <Item3> + <Name Value="EFOpenError"/> + </Item3> + </Exceptions> + </Debugging> +</CONFIG> diff --git a/ToZcalc.ctps b/ToZcalc.ctps new file mode 100644 index 0000000..e5fd3c2 --- /dev/null +++ b/ToZcalc.ctps @@ -0,0 +1,182 @@ +<?xml version="1.0" encoding="UTF-8"?> +<CONFIG> + <ProjectSession> + <PathDelim Value="\"/> + <Version Value="12"/> + <BuildModes Active="Default"/> + <Units Count="5"> + <Unit0> + <Filename Value="ToZcalc.ppr"/> + <IsPartOfProject Value="True"/> + <EditorIndex Value="1"/> + <CursorPos X="35" Y="14"/> + <UsageCount Value="34"/> + <Loaded Value="True"/> + </Unit0> + <Unit1> + <Filename Value="main.pas"/> + <IsPartOfProject Value="True"/> + <ComponentName Value="Form1"/> + <HasResources Value="True"/> + <ResourceBaseClass Value="Form"/> + <IsVisibleTab Value="True"/> + <CursorPos X="23" Y="9"/> + <UsageCount Value="34"/> + <Loaded Value="True"/> + <LoadedDesigner Value="True"/> + </Unit1> + <Unit2> + <Filename Value="C:\codetyphon\typhon\lcl\interfaces\win32\win32listsl.inc"/> + <FRMtype Value="0"/> + <EditorIndex Value="-1"/> + <TopLine Value="132"/> + <CursorPos Y="153"/> + <UsageCount Value="12"/> + </Unit2> + <Unit3> + <Filename Value="main.frm"/> + <FRMtype Value="0"/> + <EditorIndex Value="3"/> + <TopLine Value="325"/> + <CursorPos X="56" Y="352"/> + <UsageCount Value="13"/> + <Loaded Value="True"/> + <DefaultSyntaxHighlighter Value="FRM"/> + </Unit3> + <Unit4> + <Filename Value="ToZcalc.ctpr"/> + <FRMtype Value="0"/> + <EditorIndex Value="2"/> + <UsageCount Value="13"/> + <Loaded Value="True"/> + <DefaultSyntaxHighlighter Value="XML"/> + </Unit4> + </Units> + <JumpHistory Count="30" HistoryIndex="29"> + <Position1> + <Filename Value="main.pas"/> + <Caret Line="226" Column="18" TopLine="186"/> + </Position1> + <Position2> + <Filename Value="main.pas"/> + <Caret Line="225" Column="18" TopLine="185"/> + </Position2> + <Position3> + <Filename Value="main.pas"/> + <Caret Line="226" Column="18" TopLine="186"/> + </Position3> + <Position4> + <Filename Value="main.pas"/> + <Caret Line="225" Column="18" TopLine="185"/> + </Position4> + <Position5> + <Filename Value="main.pas"/> + <Caret Line="226" Column="18" TopLine="186"/> + </Position5> + <Position6> + <Filename Value="main.pas"/> + <Caret Line="225" Column="18" TopLine="185"/> + </Position6> + <Position7> + <Filename Value="main.pas"/> + <Caret Line="226" Column="18" TopLine="186"/> + </Position7> + <Position8> + <Filename Value="main.pas"/> + <Caret Line="225" Column="18" TopLine="185"/> + </Position8> + <Position9> + <Filename Value="main.pas"/> + <Caret Line="226" Column="18" TopLine="186"/> + </Position9> + <Position10> + <Filename Value="main.pas"/> + <Caret Line="225" Column="18" TopLine="185"/> + </Position10> + <Position11> + <Filename Value="main.pas"/> + <Caret Line="226" Column="18" TopLine="186"/> + </Position11> + <Position12> + <Filename Value="main.pas"/> + <Caret Line="225" Column="18" TopLine="185"/> + </Position12> + <Position13> + <Filename Value="main.pas"/> + <Caret Line="227" Column="18" TopLine="187"/> + </Position13> + <Position14> + <Filename Value="main.pas"/> + <Caret Line="226" Column="18" TopLine="186"/> + </Position14> + <Position15> + <Filename Value="main.pas"/> + <Caret Line="227" Column="18" TopLine="187"/> + </Position15> + <Position16> + <Filename Value="main.pas"/> + <Caret Line="226" Column="18" TopLine="186"/> + </Position16> + <Position17> + <Filename Value="main.pas"/> + <Caret Line="227" Column="18" TopLine="187"/> + </Position17> + <Position18> + <Filename Value="main.pas"/> + <Caret Line="226" Column="18" TopLine="186"/> + </Position18> + <Position19> + <Filename Value="main.pas"/> + <Caret Line="227" Column="18" TopLine="187"/> + </Position19> + <Position20> + <Filename Value="main.pas"/> + <Caret Line="226" Column="18" TopLine="186"/> + </Position20> + <Position21> + <Filename Value="main.pas"/> + <Caret Line="153" Column="27" TopLine="122"/> + </Position21> + <Position22> + <Filename Value="main.pas"/> + <Caret Line="233" TopLine="192"/> + </Position22> + <Position23> + <Filename Value="main.pas"/> + <Caret Line="153" Column="18" TopLine="133"/> + </Position23> + <Position24> + <Filename Value="main.pas"/> + <Caret Line="56" TopLine="21"/> + </Position24> + <Position25> + <Filename Value="main.pas"/> + <Caret Line="153" Column="13" TopLine="132"/> + </Position25> + <Position26> + <Filename Value="main.pas"/> + <Caret Line="152" Column="44" TopLine="145"/> + </Position26> + <Position27> + <Filename Value="main.pas"/> + <Caret Line="237" TopLine="216"/> + </Position27> + <Position28> + <Filename Value="main.pas"/> + <Caret Line="222" Column="37" TopLine="195"/> + </Position28> + <Position29> + <Filename Value="main.pas"/> + <Caret Line="225" Column="42" TopLine="210"/> + </Position29> + <Position30> + <Filename Value="main.pas"/> + <Caret Line="211" Column="43" TopLine="180"/> + </Position30> + </JumpHistory> + <RunParams> + <FormatVersion Value="2"/> + <Modes ActiveMode=""/> + </RunParams> + </ProjectSession> +</CONFIG> diff --git a/ToZcalc.ico b/ToZcalc.ico new file mode 100644 index 0000000..7b5befe Binary files /dev/null and b/ToZcalc.ico differ diff --git a/ToZcalc.ppr b/ToZcalc.ppr new file mode 100644 index 0000000..1e7890e --- /dev/null +++ b/ToZcalc.ppr @@ -0,0 +1,23 @@ +program ToZcalc; + +{$mode objfpc} +{$H+} + +uses + {$IFDEF UNIX}{$IFDEF UseCThreads} + cthreads, + {$ENDIF}{$ENDIF} + Interfaces, // this includes the adLCL widgetset + Forms, main + { you can add units after this }; + +{$R *.res} + +begin + RequireDerivedFormResource:=True; + Application.Scaled:=True; + Application.Initialize; + Application.CreateForm(TForm1, Form1); + Application.Run; +end. + diff --git a/ToZcalc.res b/ToZcalc.res new file mode 100644 index 0000000..1751a0d Binary files /dev/null and b/ToZcalc.res differ diff --git a/font.res b/font.res new file mode 100644 index 0000000..e77abad Binary files /dev/null and b/font.res differ diff --git a/main.frm b/main.frm new file mode 100644 index 0000000..eb70fa1 --- /dev/null +++ b/main.frm @@ -0,0 +1,1499 @@ +object Form1: TForm1 + Left = 495 + Height = 158 + Top = 184 + Width = 672 + BorderIcons = [biSystemMenu] + BorderStyle = bsSingle + Caption = 'ToZ Fusion Calculator v0.1' + ClientHeight = 158 + ClientWidth = 672 + Color = 2105637 + Font.Color = clCream + Font.Height = -16 + OnCreate = FormCreate + OnShow = FormShow + Position = poScreenCenter + LCLVersion = '7.1' + object ComboBox1: TComboBox + Left = 16 + Height = 29 + Top = 32 + Width = 168 + AutoSize = False + Color = clCream + DropDownCount = 25 + Font.Color = clBlack + Font.Height = -16 + ItemHeight = 23 + ItemIndex = 0 + Items.Strings = ( + '-' + 'Atakk' + 'Mynd' + 'Difens' + 'Reziss' + 'Spirri' + 'Rangus' + 'Roon' + 'Blokk' + 'Wresst' + 'Gillium' + 'Blude' + 'Plezur' + 'Primor' + 'Gaine' + 'Releeph' + 'Fantum' + 'Chein' + 'Mirag' + 'Gaizer' + 'Justiss' + 'Tempescht' + 'Wundor' + 'Farrest' + 'Fethur' + 'Tenshun' + 'Shokk' + 'Flaym' + 'Sloe' + 'Poizon' + 'Fatty G' + 'Animili' + 'Schel' + 'Blarb' + 'Leglis' + 'Pinyon' + 'Anther' + 'Plaite' + 'Litsch' + 'Deemun' + 'Lindwer' + 'Voyd' + 'Faira' + 'Urth' + 'Acqua' + 'Windur' + 'Pennetrayt' + 'Sheeld' + 'Priventi' + 'Invalada' + 'Phoenix' + ) + OnChange = ComboBox1Change + ParentFont = False + Style = csOwnerDrawFixed + TabOrder = 0 + Text = '-' + end + object ComboBox2: TComboBox + Tag = 1 + Left = 16 + Height = 29 + Top = 60 + Width = 168 + AutoSize = False + Color = clCream + DropDownCount = 25 + Font.Color = clBlack + Font.Height = -16 + ItemHeight = 23 + ItemIndex = 0 + Items.Strings = ( + '-' + 'Atakk' + 'Mynd' + 'Difens' + 'Reziss' + 'Spirri' + 'Rangus' + 'Roon' + 'Blokk' + 'Wresst' + 'Gillium' + 'Blude' + 'Plezur' + 'Primor' + 'Gaine' + 'Releeph' + 'Fantum' + 'Chein' + 'Mirag' + 'Gaizer' + 'Justiss' + 'Tempescht' + 'Wundor' + 'Farrest' + 'Fethur' + 'Tenshun' + 'Shokk' + 'Flaym' + 'Sloe' + 'Poizon' + 'Fatty G' + 'Animili' + 'Schel' + 'Blarb' + 'Leglis' + 'Pinyon' + 'Anther' + 'Plaite' + 'Litsch' + 'Deemun' + 'Lindwer' + 'Voyd' + 'Faira' + 'Urth' + 'Acqua' + 'Windur' + 'Pennetrayt' + 'Sheeld' + 'Priventi' + 'Invalada' + 'Phoenix' + ) + OnChange = ComboBox1Change + ParentFont = False + Style = csOwnerDrawFixed + TabOrder = 2 + Text = '-' + end + object ComboBox3: TComboBox + Tag = 2 + Left = 16 + Height = 29 + Top = 88 + Width = 168 + AutoSize = False + Color = clCream + DropDownCount = 25 + Font.Color = clBlack + Font.Height = -16 + ItemHeight = 23 + ItemIndex = 0 + Items.Strings = ( + '-' + 'Atakk' + 'Mynd' + 'Difens' + 'Reziss' + 'Spirri' + 'Rangus' + 'Roon' + 'Blokk' + 'Wresst' + 'Gillium' + 'Blude' + 'Plezur' + 'Primor' + 'Gaine' + 'Releeph' + 'Fantum' + 'Chein' + 'Mirag' + 'Gaizer' + 'Justiss' + 'Tempescht' + 'Wundor' + 'Farrest' + 'Fethur' + 'Tenshun' + 'Shokk' + 'Flaym' + 'Sloe' + 'Poizon' + 'Fatty G' + 'Animili' + 'Schel' + 'Blarb' + 'Leglis' + 'Pinyon' + 'Anther' + 'Plaite' + 'Litsch' + 'Deemun' + 'Lindwer' + 'Voyd' + 'Faira' + 'Urth' + 'Acqua' + 'Windur' + 'Pennetrayt' + 'Sheeld' + 'Priventi' + 'Invalada' + 'Phoenix' + ) + OnChange = ComboBox1Change + ParentFont = False + Style = csOwnerDrawFixed + TabOrder = 4 + Text = '-' + end + object ComboBox4: TComboBox + Tag = 3 + Left = 16 + Height = 29 + Top = 116 + Width = 168 + AutoSize = False + Color = clCream + DropDownCount = 25 + Font.Color = clBlack + Font.Height = -16 + ItemHeight = 23 + ItemIndex = 0 + Items.Strings = ( + '-' + 'Atakk' + 'Mynd' + 'Difens' + 'Reziss' + 'Spirri' + 'Rangus' + 'Roon' + 'Blokk' + 'Wresst' + 'Gillium' + 'Blude' + 'Plezur' + 'Primor' + 'Gaine' + 'Releeph' + 'Fantum' + 'Chein' + 'Mirag' + 'Gaizer' + 'Justiss' + 'Tempescht' + 'Wundor' + 'Farrest' + 'Fethur' + 'Tenshun' + 'Shokk' + 'Flaym' + 'Sloe' + 'Poizon' + 'Fatty G' + 'Animili' + 'Schel' + 'Blarb' + 'Leglis' + 'Pinyon' + 'Anther' + 'Plaite' + 'Litsch' + 'Deemun' + 'Lindwer' + 'Voyd' + 'Faira' + 'Urth' + 'Acqua' + 'Windur' + 'Pennetrayt' + 'Sheeld' + 'Priventi' + 'Invalada' + 'Phoenix' + ) + OnChange = ComboBox1Change + ParentFont = False + Style = csOwnerDrawFixed + TabOrder = 6 + Text = '-' + end + object ComboBox5: TComboBox + Tag = 4 + Left = 184 + Height = 29 + Top = 32 + Width = 168 + AutoSize = False + Color = clCream + DropDownCount = 25 + Font.Color = clBlack + Font.Height = -16 + ItemHeight = 23 + ItemIndex = 0 + Items.Strings = ( + '-' + 'Atakk' + 'Mynd' + 'Difens' + 'Reziss' + 'Spirri' + 'Rangus' + 'Roon' + 'Blokk' + 'Wresst' + 'Gillium' + 'Blude' + 'Plezur' + 'Primor' + 'Gaine' + 'Releeph' + 'Fantum' + 'Chein' + 'Mirag' + 'Gaizer' + 'Justiss' + 'Tempescht' + 'Wundor' + 'Farrest' + 'Fethur' + 'Tenshun' + 'Shokk' + 'Flaym' + 'Sloe' + 'Poizon' + 'Fatty G' + 'Animili' + 'Schel' + 'Blarb' + 'Leglis' + 'Pinyon' + 'Anther' + 'Plaite' + 'Litsch' + 'Deemun' + 'Lindwer' + 'Voyd' + 'Faira' + 'Urth' + 'Acqua' + 'Windur' + 'Pennetrayt' + 'Sheeld' + 'Priventi' + 'Invalada' + 'Phoenix' + ) + OnChange = ComboBox1Change + ParentFont = False + Style = csOwnerDrawFixed + TabOrder = 1 + Text = '-' + end + object ComboBox6: TComboBox + Tag = 5 + Left = 184 + Height = 29 + Top = 60 + Width = 168 + AutoSize = False + Color = clCream + DropDownCount = 25 + Font.Color = clBlack + Font.Height = -16 + ItemHeight = 23 + ItemIndex = 0 + Items.Strings = ( + '-' + 'Atakk' + 'Mynd' + 'Difens' + 'Reziss' + 'Spirri' + 'Rangus' + 'Roon' + 'Blokk' + 'Wresst' + 'Gillium' + 'Blude' + 'Plezur' + 'Primor' + 'Gaine' + 'Releeph' + 'Fantum' + 'Chein' + 'Mirag' + 'Gaizer' + 'Justiss' + 'Tempescht' + 'Wundor' + 'Farrest' + 'Fethur' + 'Tenshun' + 'Shokk' + 'Flaym' + 'Sloe' + 'Poizon' + 'Fatty G' + 'Animili' + 'Schel' + 'Blarb' + 'Leglis' + 'Pinyon' + 'Anther' + 'Plaite' + 'Litsch' + 'Deemun' + 'Lindwer' + 'Voyd' + 'Faira' + 'Urth' + 'Acqua' + 'Windur' + 'Pennetrayt' + 'Sheeld' + 'Priventi' + 'Invalada' + 'Phoenix' + ) + OnChange = ComboBox1Change + ParentFont = False + Style = csOwnerDrawFixed + TabOrder = 3 + Text = '-' + end + object ComboBox7: TComboBox + Tag = 6 + Left = 184 + Height = 29 + Top = 88 + Width = 168 + AutoSize = False + Color = clCream + DropDownCount = 25 + Font.Color = clBlack + Font.Height = -16 + ItemHeight = 23 + ItemIndex = 0 + Items.Strings = ( + '-' + 'Atakk' + 'Mynd' + 'Difens' + 'Reziss' + 'Spirri' + 'Rangus' + 'Roon' + 'Blokk' + 'Wresst' + 'Gillium' + 'Blude' + 'Plezur' + 'Primor' + 'Gaine' + 'Releeph' + 'Fantum' + 'Chein' + 'Mirag' + 'Gaizer' + 'Justiss' + 'Tempescht' + 'Wundor' + 'Farrest' + 'Fethur' + 'Tenshun' + 'Shokk' + 'Flaym' + 'Sloe' + 'Poizon' + 'Fatty G' + 'Animili' + 'Schel' + 'Blarb' + 'Leglis' + 'Pinyon' + 'Anther' + 'Plaite' + 'Litsch' + 'Deemun' + 'Lindwer' + 'Voyd' + 'Faira' + 'Urth' + 'Acqua' + 'Windur' + 'Pennetrayt' + 'Sheeld' + 'Priventi' + 'Invalada' + 'Phoenix' + ) + OnChange = ComboBox1Change + ParentFont = False + Style = csOwnerDrawFixed + TabOrder = 5 + Text = '-' + end + object ComboBox8: TComboBox + Tag = 7 + Left = 184 + Height = 29 + Top = 116 + Width = 168 + AutoSize = False + Color = clCream + DropDownCount = 25 + Font.Color = clBlack + Font.Height = -16 + ItemHeight = 23 + ItemIndex = 0 + Items.Strings = ( + '-' + 'Atakk' + 'Mynd' + 'Difens' + 'Reziss' + 'Spirri' + 'Rangus' + 'Roon' + 'Blokk' + 'Wresst' + 'Gillium' + 'Blude' + 'Plezur' + 'Primor' + 'Gaine' + 'Releeph' + 'Fantum' + 'Chein' + 'Mirag' + 'Gaizer' + 'Justiss' + 'Tempescht' + 'Wundor' + 'Farrest' + 'Fethur' + 'Tenshun' + 'Shokk' + 'Flaym' + 'Sloe' + 'Poizon' + 'Fatty G' + 'Animili' + 'Schel' + 'Blarb' + 'Leglis' + 'Pinyon' + 'Anther' + 'Plaite' + 'Litsch' + 'Deemun' + 'Lindwer' + 'Voyd' + 'Faira' + 'Urth' + 'Acqua' + 'Windur' + 'Pennetrayt' + 'Sheeld' + 'Priventi' + 'Invalada' + 'Phoenix' + ) + OnChange = ComboBox1Change + ParentFont = False + Style = csOwnerDrawFixed + TabOrder = 7 + Text = '-' + end + object Edit1: TEdit + Cursor = crArrow + Left = 352 + Height = 29 + Top = 32 + Width = 168 + Color = clCream + Constraints.MinHeight = 29 + Font.Color = clBlack + Font.Height = -16 + ParentFont = False + ReadOnly = True + TabStop = False + TabOrder = 8 + end + object Edit2: TEdit + Tag = 1 + Cursor = crArrow + Left = 352 + Height = 29 + Top = 60 + Width = 168 + Color = clCream + Constraints.MinHeight = 29 + Font.Color = clBlack + Font.Height = -16 + ParentFont = False + ReadOnly = True + TabStop = False + TabOrder = 9 + end + object Edit3: TEdit + Tag = 2 + Cursor = crArrow + Left = 352 + Height = 29 + Top = 88 + Width = 168 + Color = clCream + Constraints.MinHeight = 29 + Font.Color = clBlack + Font.Height = -16 + ParentFont = False + ReadOnly = True + TabStop = False + TabOrder = 10 + end + object Edit4: TEdit + Tag = 3 + Cursor = crArrow + Left = 352 + Height = 29 + Top = 116 + Width = 168 + Color = clCream + Constraints.MinHeight = 29 + Font.Color = clBlack + Font.Height = -16 + ParentFont = False + ReadOnly = True + TabStop = False + TabOrder = 11 + end + object Label1: TLabel + Left = 16 + Height = 21 + Top = 9 + Width = 84 + Caption = 'Item 1 Skills' + ParentColor = False + end + object Label2: TLabel + Left = 184 + Height = 21 + Top = 8 + Width = 84 + Caption = 'Item 2 Skills' + ParentColor = False + end + object Label3: TLabel + Left = 352 + Height = 21 + Top = 8 + Width = 140 + Caption = 'Resulting Item Skills' + ParentColor = False + end + object Image1: TImage + Left = 136 + Height = 158 + Top = 0 + Width = 536 + AntialiasingMode = amOn + Align = alRight + Picture.Data = { + 1754506F727461626C654E6574776F726B47726170686963D664000089504E47 + 0D0A1A0A0000000D49484452000002170000009F08060000004AA5FBD4000001 + 85694343504943432070726F66696C65000028917D913D48C3401CC55FD34A45 + 2B0E761071C8501DC482A888A354B108164A5BA15507934BBFA0494392E2E228 + B8161CFC58AC3AB838EBEAE02A08821F204E8E4E8A2E52E2FF92428B180F8EFB + F1EEDEE3EE1D20342A4C35031380AA59462A1E13B3B95531F88A00C208A21763 + 1233F5447A3103CFF1750F1F5FEFA23CCBFBDC9FA34FC99B0CF089C4734C372C + E20DE2994D4BE7BC4F1C662549213E271E37E882C48F5C975D7EE35C7458E099 + 6123939A270E138BC50E963B98950C95789A38A2A81AE50B599715CE5B9CD54A + 8DB5EEC95F18CA6B2B69AED31C461C4B48200911326A28A3020B515A35524CA4 + 683FE6E11F72FC4972C9E42A8391630155A8901C3FF81FFCEED62C4C4DBA49A1 + 18D0F562DB1F2340701768D66DFBFBD8B69B2780FF19B8D2DAFE6A0398FD24BD + DED6224740FF367071DDD6E43DE07207187CD2254372243F4DA15000DECFE89B + 72C0C02DD0B3E6F6D6DAC7E90390A1AE966F80834360B448D9EB1EEFEEEEECED + DF33ADFE7E005BFE729E14C8F484000000097048597300002E2300002E230178 + A53F760000000774494D4507E4041409012441337B230000001974455874436F + 6D6D656E74004372656174656420776974682047494D5057810E170000200049 + 44415478DAECBD77985D5779EFFF596BEDBD4F9D5E55465DB68A655BC57243C6 + 36A684DE124202012E1042421A373721051E02C92F21213CB921C9BD49480890 + 4B09769C10B00D36D896B12D775B9665B9C95697A6B75376596BFDFED8FB9C39 + A3022421A8B03E7A8EE6CCCC39FBEC337B9E677DE7BBDEF7FB82C3E170381C0E + 87C3E170381C0E87C3E170381C0E87C3E170381C0E87E33F8A703F0287C3E170 + 387E303E76CD353CB8FF0847A76ACA57A677E560CF90F254EEE0E8C4115D97FB + BABB037DFD93BB9DB870BF2A0E87C3E1709C9AD72C398FA924ECB976CD9A6D4B + BABBAE0C7C6F932FE5DA422ED71728E54929498CB695303C305DAFDFF0D8BE03 + 9F9F98EA7CF40B7BBEE1C485C3E170381C8E94D7AFB84094CBDEDACB96AFBCAE + B35078555B3EB7AD18040521C4DCCA29044288ECAE682EAA519298896AED9627 + 0E1DFEA3F70DF57F77F1E7FEC9890B87C3E170387E5C79D5F9EBE4D52B56BE6D + 6167C76F75168B6B02A564BA520A32FD8010029B7D1499C8682EA899E01002B4 + B666787AE6DB8FEDDFFFD1E145EDF7FCFD176F74E2C2E170381C8E1F27DEBAFE + A2BE97AE5BF70F0B3B3B5EADA4480545B652CE1313A4EE8568712E9A1A237B8C + 481F4014C70829CDB1E9E91BEED8BDE7432333E37B6F7CEAE973FE67A9DCAF93 + C3E170387E9CF9C52D5BD8BA68C99A97AE5F7FDB828E8ECB65AA12A0F1A1E946 + 088494F33F6F8889ECBE140221642632045249A23811039D9DEB570F0EBEBBB3 + 581E2FD74B0F3F3179E89CFE997AEED7CAE170381C3F6EBC7EF55A8450C5CB57 + 2C7B537F7BDB9BDBF2F96BDA0BF9B61663A26947B43A140D21615B8E25840029 + 1A3E078D2D1421044A484A853CF530A254C897372C5BFA7F0AB9FC8A696FF677 + 6E7E66B776CE85C3E170381C67396DD267DBE265DECB2F58FF9E17AD5E71FDB2 + DE9E77B417F2E7E7023FD7A895902D2E8514F39D0AE66D836422A24558081ACF + 9DEF6E789EC25883F23CD1DBDE76E5605B69A19D8DBFF1D4E4A875E2C2E17038 + 1C8EB3989FDBB8B5FF0D9B2FBE71596FCFAF1482A05D08D974199AA220DBFA68 + 8A8C162B4308819473459B42342A2C5A9F2F08A318CFF33217233DA6B5168BC5 + 0F7CBA3BDA361572DEECF0EEDDF71C71E2C2E170381C8EB393F76FB962D1CB2E + 5877675F7BF9127992FA0984208C133CA59A05998DBA8B86B098D319596D05A2 + F9D8C63104024F29EA514850C8E3E573E982AB147118912B15080A79FA7BBAAF + 8EA5774B9B14879F9D9838A77ED6D2FDBA391C0E87E35CE795CB5717AF5A7BDE + BF74974BE7350B3369DDFE982BC68C92E4849A8A56A74234B64A3281D1702B5A + DD0FAF90275F2C928421CA5704E5022AF0C815F2D4A6671152502E9782176FBA + F81FC28AC939E7C2E170381C8EB3C9B1D87C05D76D58FFD78BBBBB5ED33023AC + B56863504ACD655588D47148B4C6570A21E7B640D28F9266A3E9F1A222733310 + A07C0FAF9027C8E7D0518CD10621052AF0914A118721524A9082BC5403DD6DC5 + B1FEA873C7A3E3FB9D73E170381C0EC799CE5BB6BD881583BD6F59D6D7FB6E95 + 3914424A629D6D7F9CE04A080A41403D8EE6B91490391D52A2946CD902991326 + ADC99DD668AC805CB90816741823A5C4CB7BE4CB25C24A0D6B2C26312C1F18FC + 8D67A6F7979C73E170381C0EC759C0C6B6AEBEABD7ADFB5A31972BB7367BC45A + 93F383A62ED0DAA0944C1D0A99758D48998A09DFCF3E4FC50542E0E573D84483 + 10484F217D0FAC4D05889278F91C2649104A92D4A3F475A5C02B04086B536111 + 252004793F68EF6DEF38DADBD375FF63FBF639E7C2E170381C8E33954FFFDD5B + 79C5C68BFFA0ABAD3CD0100AA91321F1A4422AD574262A61C85CF5A624F0028C + 31692D8627F1F2015E318FF4BD5470788A6ABD0E804974BA0D522AE0E50354E0 + A5C24288D4B11082288CD0F5181B6964DE27572A90C431588BB586A19ECE5FDA + F1D893E7CC1FFCCEB970381C0EC739C786AE41564EF55CB961C9D05F2825D324 + 8A463C77B69D11E472E9F68681581B626DC8050152A60E86CCEA2EACB104E512 + 4280D51A2F17203C45AD5225F0525743E5028427915EDA722A3D1F2FA748AA21 + D65874A2515E2A4C6490D65BC495102105184BE0A9DEEE5C7EC70B87479F9D88 + 6BCEB970381C0E87E38C23166AC392C59F0C023FFD23BA5558642DA8169B1559 + 4ADA8A058E4ECDA47F7507012AF0D3C798B46FC4C409D6825FCA23030F9B687C + 2F0DB9B616926A1D912DA9CAF79052606293D56B58A4109838418731A69EA06B + 31F9521E1D2758635042B26AC1C007F3BDE573E2C7EFC485C3E17038CE39DE79 + F565AFEDEFEDBEAC753CA7360621257E298F3106AB0D5E31875012A514852060 + BA5AC31A4D502E10940B6893267427B51A268A91322D02D571829273E6BF4934 + 71AD8ED516E5FB18ADD1B1C62BE4B0163C4F114531493D24AE466005D2F7D049 + 92866B594B6FB97CED6B96ACDCE2C485C3E170381C67185BDA17A9950B063E12 + E402AC9E4BAC4874825F08F0F2FEBC592141B980F23D063ADB3838399DD64724 + 1AE1298262211300A97B9144310281B5169324F35ED7843171B54E12469858E3 + 050A634C565741B39A34A987586D3089C1689D8A0B6DF0A492EB972C7ACF75AB + 879CB870381C0E87E34C61513ECF2BB75E704D6F47FBC5642DA629A9C850810F + 36ED044917FA08E9FBA8BC4FCEF728E7721C1A9B249EAD823158AD4932F7C25A + 4B520BB1D6824D3FCFC6A6A662237B7C34534D1F2F04BA1E652F6F314667CFB5 + C4B54C8464C2C25883B19AF642F14D65DB563CDBAF832BE874381C0EC739C3BA + C132AFB970EB1FF6F7F75D608D49BFA84D9A35610C857299B85647C709524A4C + A2518187541E42080260FFC4349E94E410E9F3B4C153AAA95154E093D4439224 + 9B1F22E6A6A1364408596D47528B5267C2588CD6189BD570688DD186384EF32F + 1AA223F05431E77B7B3B45F19127C68E3AE7C2E170381C8ED34D999EA05C28BC + 547A5944B79220E5DCA29E24E87A8C5292384E004B5CA963E21899F32914F22C + EE6A67FFF8249333B3A964C89C89864361332702219BAE44AB3B82B56932A731 + 586BB0D947A524519C7E3DADC948EFC7F15CDD05C0E2EEEEDF9C892BDED97C1D + 9CB870381C0EC739C38AFE9EF3DA0BF91E6B2D4209A44A83ABC0A2B521091B8B + 3E59B1A6488B31676B24953A415B91FE8E36DA73017BC72699989EC193991069 + 1128906EAD244992D55458AC31D4C310A30D26D124F5B0E964A42223FD688CC1 + 58DB143C611237C58535868E5CEEFC2B56AD7A536B31AA13170E87C3E1709C26 + 1676752EF73C0FB44E03B2944A43ADAC258A2292302289623086D06A624F343D + 071DC7C43355FC5281E5BD5D049EC77363531C189B2049D21921D65A743DBD2F + 817A98E658A4C2C1922409E9607593B69D36C48449C584D6A64570A4B7304ED2 + E31B930577C1AABE9E8FBF79D586B3B6F6C2D55C381C0E87E39CE12D1BB76C5D + D0D5F946A1145ECE47340A28AB11B3B51025C06250525258DEC7C2CDE731B337 + AB6D681457261AA924ED41C044B5CE7414935392722ED72CCC4C928444A7C7D1 + D62011602D611CE32985CD0A3E6D26486C2628C224C61392EC0124DA504F1204 + A0844C658E85BCEFF7B417F3A5B290DF7A6274C439170E87C3E1709C2EF2811F + 405A30D99803026960563D4998A955D35652A06BD9027A170FD2B76D7D73E858 + A3C554271ADF939CDFDF4DC15384DA648E44BAB5311B46EC3936462D8A88E318 + 6D34DA182C341D88C6F687056C5667618C6DDEAC49BB44126389B406D2C7C626 + 2DFC5CD6D3FDAB172E59F2F69F5BBBC9890B87C3E170384E17DA6AD358C86D33 + 63221505953062B61E0196C46A3A170E22BD8085E7AD60F0EA8B41A6CE41A3F6 + C1188B528295BD9D94030F6334C668B4364CD66AC4DAF0FCF834B5286EB6A27A + 62AE63A4B1556233A1910E362375273221A18D25318630C984884DD33CAB7184 + 1442AC1D1CF8F4604FDB8637AE5DEBC485C3E170381CA78391A9E92910594645 + 5A441957EB992088A8C66931676EB09B727B5B735C7AFFCA2196BDEE4A4CD14F + DD8746FBA84917FB722EC0689316852609A39530EDF4480CC3955AD611625152 + A605A30DE742EBB9202D4035DA56ED9C5362AD455B4B98643918587C29998D62 + F29ED77EF192A11BDB73C585D72D5FEEC485C3E170381C3F6A9E3D76ECA9288E + 52211025CD055E0249568469B4A663C9C0DC93B29923EDBDDDACFFA997D2B569 + 55D35B68B8203ABB9944530D433A73A90841402D4A30DA10C5512A3232A1D174 + 419A3517736DAD96D4E9484CBA2D52F415D3F530ED2231162924B13144C6D091 + CFAFBCE6FCF3BED1E6173ACF96EBE00A3A1D0E87C371CED01595C72E5AB9E8A7 + 8B41D02B543AF1D464A2E0E0C40CC5C0A32DE7B370EB5A8AED6DE910B36C9019 + 0294E7D1B9A89FF6D58BA8C711B5A31398AC105365615789D17415F2741772E4 + 54FADCF67CC04C5825E705273DAFB4EB346B3FCD86995920D49A5AA2E9CE074C + 8631E5602EDE4249C14835A41CF814836070A0AD6D737D3AFECADE9971EDC485 + C3E170381C3F222E1E1AB42B07FA56B6170A9735123A85942471C291A90AC5C0 + A354F45975CD1694E78194882CC23BFD97DA11413E4FEF8AC5F45CB00CD15660 + F685B4A324D40939E565868720EF29CA818FC5528B130A7ED00CC34AA3C1696E + 89A477D3BA8B46844598682AB1A633E7538D35BE4AC7BD275AE329C96C189318 + 43DEF728E782953D1D2539F574F29D834C3871E170381C0EC78F823D63235CD0 + 33102DEDED7987CD3A328452983866B25AC357D0B3A49F251BD782C846AF0B31 + 9757D57A1F507EC0D8D161A6F71E81BCC7BA9F7C09C5055D502E90EF28A0CA05 + 8C1278ED797AD72D233C36819D53124D41D1386EDA6D920A13ACA51A6B66E384 + AE7C8010508935794F301B25E4545AB97078BA463948CFB510049747C5FAD777 + 1E3E7C5463CFD8EBE0B95F4587C3E1709C4BDCB1EB99BB372D5F7AB0A358586C + B48628C6584B4E2984B09417F6D0D89DB04D174180B02D6E0360E0A987777278 + C79358A359B2790D7D8B0661E1E0BCD73BB8672F1DBD9D94BB3B7970EF30F1D4 + 6C73B0996DBED05CD685CD8A351A9F6B9D6E97E43DC591D93A6DBE244C0CD344 + 044A028263B3210BDBF244C6F81B162EFCF8557D6B5E7DDBF0EE33F61AB8824E + 87C3E1709C53F4F6B64553D5EABFD058BCE3186B0C81A710C0FE170EF2F803BB + A8D7EA7343C70459E748FA891082E9A929FA871660AB753AD67433B862081018 + 6B393A32CAE37B9E61E793CF323C3B43A9A707A114DDEB9735A3BD6DA6515AE7 + 860804327B9D46DE86B69624EB4AC92949254E28FA82D14A841090F70453B598 + 6AA219AF86B4E7F3AF5830905F76265F03B72DE270381C8E738A3DA3C30CB5B5 + 1D5BDED3FBF34208D1A8BD88B2F1E997BFF93ACAED25F63CF008B97C8E52477B + CB64539A0223C8053C77D7C3F4AC1AA0B3AF9BFE152B79E685FD7CFA1FBFC8A1 + 198D2CF772706C8A5BEFFE2EF7DEB783E543430C2C5BC4FE879E44B63816AD5B + 2D96744B247B0966C288D930A123EFE32B49AC3593F588CE42C0B1D9906256E0 + 391326C4DA92E8A4E62B5129E782C3B73DFBCCFD4E5C381C0E87C3F123A2A0FD + EA058B073E580C729EB08D651D2A71CC86975C4A474F17A5428E91BD4FA3FC80 + 427BFBFC0308C191E75F60C1F92B2877B453EAEEA6A63537DCF9101FF88D0FB3 + FABC35F4F60DB2EDEA97F0AAD7FD240B97ACE60BFF7C3DFB0E3CC779EB56533B + 38DAA255E60A3B1363F0A46C8A8D997AC46C94500E7CF29EC202239590B6BC47 + 3D3654634D29F098AAC5D4138D10C21B9F99FEFBAE7269E3AC3EF0E57DE3D119 + F9F37735170E87C3E138E7B868C9C0DAC0F7738D5A07809CA7404AFC20404885 + D7D94961C162C6F6BF80CAE5E8E8EB4F0B2D81CACC347D438BF18380EAF43485 + 7289D94A952BAF7A09DBBFF36DBE74CB0EEA7E0743DE04BFFA2B1F60C3A64BF8 + BDD5E7F3777FF9271CA8CE20F3927C4DA705A3588485D818EA8921E7CDB91726 + 9B31524F123AF1F1B21C8CE97A82AF60BC9A900F14914EF0A4224C8C78EAE8C8 + 0D855CF0D78568818067CEC8AA4EE75C381C0E87E39CE2F5AB2FE4CA55CB7FAD + BB54BAC26471DA8D9A07E30BCEDFB6899DBB9EE43337FC3B1326E0F0E8387D39 + 8F425B193F97475B4B10E4F07C1F2104BEEF23954408C9785DB364F96AAEB8F2 + 4A6E796A82E9FC000FDCFE4DB65D7A31DD3DBD140B65DAFD98F52FDAC843F77E + 9BD8D489ADC168C991D93A79CF6B6E75008CCCD6B3B92582EE620E8365B41212 + 2686B6BCC74435224C0C95B01E2AA98410524E5567FE1A581063BEFEC4F0D133 + 525C38E7C2E170381CE714E39353B2AD50789314829928A22D089AF912BE10E8 + 44F3F53BEFE5237FF469AA950A412EC743DFFD363D5AE3C511BEEFD328EA0410 + 5E3AE5D40B7C3ADB3C3CA5E82EB7D1FEFC1D88521F7AF525DCB3FD4EDEF0533F + 4D775B819E8EF338F8CC2E566DB2485F333A32C2DE276B102DA2336F9B9D2A73 + 699D508F13B431CD5A8C486BEA49FAF77F3A7D5585F5383A90F78355B5281C99 + A8FBFF96CB17CED85E54272E1C0E87C3714EB17EC982F5253F581669CDC1A959 + 967414F1958727249EB13CFAF04E16AD5803D6F2A93FFD24D5C4F2FEF7BD8BC3 + 232F707E39ADBD68ADEF4C850648248BDB15DB77EDE1AE6746C915CB108E71DD + 5557B2EBA16FF27A6318E828904C4DA1C7EEE2BC957DB4AFDE4A327588FECEA7 + D8F11D9AC76E947826D9B688B6508B358192189DB6A7CED435C61A845058AC30 + 46EF4A745C9E989D3AD43D3830B5F0C2558607EE75E2C2E170381C8EFF4ED675 + 2FE5C2A1C5EF514A8AB16A1DEBCF70CC7B9E28065B29D0A616E18DCDD0DB9627 + 9FCFF39BBFF3BBEC7864379FFCCBCFF1E15FFE59AAF519DACAA5F90715CD240C + 7C2C976DBA88EFEEBE8555AFFA1F182B28B775D056C86193085B9B62B6324D4E + D6517E9978EC39A24A852048C3333C29E61D2F6D5B05B0CC8431DDC5A0D9C21A + 2549733BC75A3B6AB1C7A224F9667BBE3D7EC35BDE38F1AA5FFCA533F63AB89A + 0B87C3E1709C336C1B5A52DEB274E8B381A70A476BB36CFB893C575C7701AB96 + 15696B83BD07228E3E338AC919BA97AC607C6C82C7F71EE0D907B633151AB65D + 721198F884A44E5A46A907C42C1968E7F0B109162F5DCEECD17D6C59ECD3E5C7 + 081D81904CEC7F807CD1C3EA98A85267EF7321A347145DC51C79DFCB62350447 + A62B243A1B6466A114F88C54EA6893067AD5E230F1959251127FC7A06BD3D5EA + 8D5FDAFDF0335FFCC64D67F47570CE85C3E17038CE097E72ED7A2E5BBEFCEDE5 + 7CBEBB1A47F40E69162E5940BE7F05E1E438ED259F854B352F3C09E5D8438CED + 6568D566266FBD8385DBDE48F7AAE50C4F4CD35F5669C26623506B9EC610581D + B3BCBBC0FBB795D06614B1D047885E486A586BA955AADC76F37EFC0E4377579E + 52D1E3A927DA31167CA99AC2C258D0762E12BC1A274CD6438CB1186B50429124 + C97DDAF3AE9CA9556E884CB2616472F2D6B3E15AB8844E87C3E1709C13C431F9 + C18EF6DF00CB782DC25786EAF82833CF3D4A548BD01A8C06B01C79F200D1E804 + C5CA117EEE8D2F67C1603FF9A517706C78380DBE6AB9595AEE37068F6501594A + 4A84A4F938630CCFDFF5306B3A2EA230B392CAFE018E3E5920AAA61B055E16E7 + 9DD92018D3A8C9B4686D18990D6934CF0A60BA56F9562DAA3FFDC2F0E1EBAD52 + FF5C6E97D1D9702D9C73E170381C8E7382ABD7ACFEA58E426145623453B588E4 + B060F46805395E231778CC54138E1E946803C618EEBDE91E162E5F4C4F21E2BA + FE69C4C476562FE96B8E476F2CF0A98B619B82C036879001C636C500160E3CFA + 24E1B3475052126BC9A2F62E3CD9CD74751C6DC09362AE530443620CB6597791 + 7686D8AC7DB6168747EB49F478A5C6072FB8F0421D26C9CECFDD72CF59712D9C + B870381C0EC759CF5BD75DD4B7B0B3FDB7C13252A99368CBD484E181BB4366E2 + 594222946D43D4BBB3E02A183B34C69E5D4FB161F306D62C5B9CBA114260AC21 + 891382C0A765787AB385946C2B23D31A34C69FD5672A8CDCBD0B2125C218A414 + E4FD7499ED2EE699AA47693A676A756030F87908ABD99C346B9042A6EE88104C + 552A1F0C0AF9BBC60ECC8EFDED43FF66CFA6EBE1B6451C0E87C37156B3827EB6 + 9DB7F2F78B41D0538B936C6B0156F674B1BCBC8C81602517775CC4826080581B + B4B1686B0913C303B7DC4714D6B32D8F54274C4CCFE2798D7E87F48BCDCD8B6C + 6BA4B16BD2C45A0E3FBA87244900D040C1F7509E0752D25EC891F714CAF31052 + 208424B686AEBE7C36DCCC348F67AC61B232FB1793E1CC97B7BDEBEDA3371CD9 + 69CFB66BE2C485C3E17038CE6A5EFFA2359B16B477BCD75A38349DDA002BBACB + 74E47328A9104290F37CDA8202DA5AB435CD69A53323B33CF9D0EECC2D48C544 + 54AD303936DE941673776C63CC698BE8481FA19384C93DFBA824210089B11432 + D7224C12A48052CE6F9EB3106095A0ADBD8414B064653B41A000CB6465F61307 + C60FFFFA57763E62DFF3FEF79F95D7C4890B87C3E1709CB5BC64E16A79C18205 + 7FE67BCA1BA9D498A9C7741503BA4B05949420C8B62204E520400A81310663D3 + 5B6C340F7DE721E230C41A031606070708C7C7991E1E691997DE28EA34A9A430 + 96A9B109767E370DB19A1A19C55FD6432117349337F39ED7ACADB0688A411A27 + DE48FE24AF083C8F42C9E7BC350B1016DABB730C6D5CFCC06CB160AF5AB39697 + 5DFD622E59B890AB376F3EABAE8BABB970381C0EC759C9CFADBA92D54BDBDEDC + 5B2E5F1D69CDA1A92A000B3A8AE9222E254992208520D61AD908AF92B219BB2D + AC65726486271F7B928B2EDD98554F40FF8AE54C0F8F401283E7A3E3987AB54E + 12868433B38C1F196662FF2182EE76B086CAF42C0BD6AC24DC7324EB28B1E43C + 1F6B2DAA20C9073E2A6E899612027C89B196F59B17A3B5C257828D97AFA6ABA7 + F3AB9BD7AD7C380CEB133B6E7DB834DDBF78A264BDE1176FD9762CB4F6F0B430 + 87C6AC3E50B1FAE884647442DA7A4F6CCC5D8F3CE2C485C3E170381CFF1546F5 + 48FBCBFA977F5208C1C1A92A89B1F41403A224318152524949A4D3486D80C418 + 12A31142A2AD46641916B1863BBE7A078B972EA267B01F9048CFA3ADBF8F3DBB + 9F66F4A9BDCC8E8CD1DBD5497BA140291750C452ECE8202997B11672C5228546 + B267D6A26AB1C43AC1EFF2F16389999D2B9D48B4867CC0607F999EDE6E9EDCB9 + 8F951B87181CEC474825962C6ADBAC029F82F179F6867B50C8CCF190CD4E9518 + 4B624D3DC18E449E796CCBE6CBFFF92E5BFBE2830F3FAA4FF7B571DB220E87C3 + E1380B51BC7CFDBA8F74160A43D3F590D14A5AC4D951087861647487AF1420A8 + C786BCE7518D13AA719C6D73182A61B59AB680A68155B55AC4F5FFF0AF4C4F4E + 61AD490582E7B17CF50A4CE0512E042CEDEBA6A7BD443EE753C80514F201DDCB + 162184A0BDAB033F48079E59C0578A3849F095A2D05D427AF303B1AB7142A9A3 + 444F7F1F0649CF824E2EDABC9E726F3F3D8B871858B18CBEA14574F4F6A084CA + FC14911E5D801410084151AA7CBBF4867AA5FFEA75AAF4F937C8F61B5EBC6973 + C1890B87C3E17038FE83FCE2A55B2F5CD8D5F9CBB14ED83F319B66451883D6D1 + E1723E7F5B6A2018129DA0A460EFD80CD528C6588B3609A35313BF13E9B85609 + 6B556D3489D18C1D1CE7FABFBD8123070E375FA7502CB0ED352F65CD155B906A + BE4048721EED0B168010F8C53C5ECE4794E626B02220B186422947B5DE927D65 + 2D9528A2502EE20779CA1D5DACDBB28981952BE81A1CA0D0DE86F20384F4A8CE + 56B3D0AE137F06C7CD56430841BF0C5EF71259FCDBF55B369ED6F5DDCD167138 + 1C0EC759C52696F3CA4BCFFF5457B170F168A5CE582522EDB2987E40107FBDA7 + D85E2AE7739702C446335AA9335EAD13C6611C1AABC2381C393631F5B6622E18 + 884DFC823676CC57DE326B2D95C92A4FDEB71BAB0C0B8606519E879492526F2F + A25C221C1D455848F2011D1BD61114F2602D22ABF9AC4CCF50393C8235969A89 + F00A015DCB07193D348E1F833506630C87A62B6C7AD9A5742F5848A9AB8BA054 + 44480542CEDD10ECFAFA766AC7A69A21E4CD74D0E3C9765C8480A29017766A0E + 16162F78F8F9C3879D73E170381C0EC7F763E3C6DEA5DDC5E29B629D706CB68E + C51225F191F1DACC1F1F9C9CBDD142906883360609B53D47470E6993706862E2 + 66630DB1D60F04BEAA8F4C4F7D24D149C7A1E1E157566AB55BDBE284629250AB + D5B8E3FA3BB8E1539FE3E8BE83992D00C5FE1EBAAFD84AFBE59B19BC622BC58E + B679CE41AD324B14D748B421D19AB6C59D88CE3C7162E8E8EBC0188D31867A9C + 402EA07B60003F9F47F93E42AAF4A6D21B4230796498F1C7F763AC394147585A + DA645B7338C846C3CBDCC7B5B5F9D3758D9CB870381C0EC759C31B576FE0C2C5 + 0BDFE37B2A3752A913269A5827D5E1A9F19FF483DC281DEDF7CD46B561635371 + 315EA97C5663C37A92706872F2CF139D6863CD911BF6ECC2EFEF198DACF8BF5E + 57B96FA591E7B7879A817AC2AABA61455DE33F7D94D9F1498C49133B4110E472 + 00CC8E8D539F9E01D2B1E987F73EC7F033BB090A101B83B6865C77999E25BDF8 + 411EAB3CAC4967898C576BF4AD5880F47C84F25241215341111B93B6AF1ACBCE + AFDF4918C7590967AB41315F56D886A5D1F2D5929483EBAD7FB513170E87C3E1 + 707C1F8E4DCEA8B67CFE6712AD19A94468A3EDD8CCD4FB3EFBC87D774BCFDB75 + E9AFFE923E3431757F9AC019F3C4E1239FB7C6C6B1D61561E5DD6112DF6DD035 + 802FDD793BC55CE1A60DE4FFB05D7A4B4ACAC3930A29259E90C8FE12CB37AC41 + 4A8914305BA960ACC5CFE7088A79F2ED6DD4AA75F63CF628E1C418427A04A522 + F9C51D1863F0FD02FDCB97B368EDF9F8C24FEB3DAC61B41232B87400E1298492 + 580433F51A8931049E0742B2E7BE47397ADFD3CD45DACE1314E9E7B524662CAC + 67391C8D29AE0D2345B050F8AFBD76CB16272E1C0E87C3E1F85E5CB46CC1C5A5 + 5CB062B21E11259A89D9E98F4D06EA9F003A0231F18E57BF86A7C74677CF8635 + 66C2B0FAD0B3FB76696B9E134258A1A59DADD5FE4E58D55CA9A7A3DAF25EE9FF + A44020B36C8C46D055716810CF4F83AF941FD0562E53ABD7A98621D538E1D97D + 0788A390D56BD660BD00A57C94F2195CBD10E12B7A972EA1636000E905548E8E + 638C61268CA8C59AEE4583082109A3985A1CD35E2A13F869B7C9D1E7F7B3EB1F + BE81D1064FCA9670D0EC9FB54CC721C3718DA2973A1EC7E7830BC083D5893E3D + 5DA92EE7C2E170381C670DAB07FA5E2EA560BC1A315BAFDEBCF7E8F0C76FD9B7 + 07803FBFF34E0B70244AF64DD7C34703A57A63EDD76A61F89572A1705D2CA35C + 25B65FD5D6ACF99DDFFA4DEEBEF5362E90855FC90B954B054563594E5773992D + DC88B9997CB4E800002000494441548D8952A904D632A5A75931B41829C068CD + E0CA954CEE3F80F27D7A962EA7D0DE0B48A4F2A8CE54882767D1C6726CA686F2 + 24E59E7666AA35CAE5322A2BD0B458C68E0C73CFA7BF4212265924F99C77D110 + 1855AD998C633A7239F2CA8366F4D77C8FC343B68B8E0EE75C381C0E87C3712A + 5EB1E43CF2BE7F59AC0D93D5FAF891F1B1F7DCB26FCF097F9A978C3507C6C63E + 16696D2626227B6464E44B71123F92F783F3AEDFB5335441EE8BE3DF7D5814A4 + D7D329BC77CC4572A70B74A86322630827679B134AB339E9CD6E8DCE8E8EE650 + 32E97914CBED143ABBE91E1AA2D0D1CE82B5ABE85CD48F508A99896912A3A9C4 + 3193B598AE45ED082C1DED6D594479FADAA34747F8CE9F7D8EEA910912A3319C + 38AF2C3196A938C2531E65E9717CC1C571D5180553A93871E170381C0EC7A9D0 + D6484FC98DD361CC54ADF2B14470D23ECB5B9F7B92FB9F3BF46F0726271E5FBD + A2ADFDA6FDCFC46333336F0E72B9F3003E77FFDDBB17AEE9B71B6DEE670B4276 + 8816D120209D986A12EAFB8E51ABD6B2A3A60260B656C53684869048A9104222 + A4A463A09FA058CA0A3425B96211101C7E6C0F89311C99AE2184E0B2575D435F + DF408B28101C3B768CEFFCE967090F4E60AD25328693349C32AD2312A02BC821 + 856C9E33CD23891689619535C6890B87C3E170384E45CE571D52C9C1E97AEDE8 + FE91637F77FD13A79EA571DBC167CCF3A393EFEEEDEE5C747E47077ED13B982F + 95BED6F8FEE71E7F5AF64AEF7D52CAA6B090D9478320B206155A260E1D6BD516 + 948B25666666D2C1A859BA9590A9B8488C69767E08998E57AF55AA8C3EB19799 + 2861BA9ED0D65362D99A95F3CE75766684E7EFBB9EE8F04473E6896EF485D8B9 + FE90AA4EA86A4DD10FC80B35272AECC936450442501341705AAE95ABB970381C + 0EC759413EF0BB2CC2AB85D13FAA4055BFDFE34BF9F231BF981B7DEBC68D7CF4 + 8E3B009ACFB9488B5565CF5B4BC3B1985B9D51023C2B30C6F2F49D3B587CFECA + 6CBA69BA7DD2D1DE41AD56C1F70394F29AE9988DEFB7ACF91C78FC49AA71C2C1 + C91A520836BFEA8A66E126C0F8818324B3B7E0459960C99C13D9B24D0369D2E7 + 5812E2494997EF03C7391259D5A7B0601BCFB322BCEBDE7B9DB870381C0E87E3 + 54586375AC0DE3B3D3DBFFEDC927BEEFE33F73FF7680136A325EBE6D1BEBEBE2 + 0D81542D5220DD4E1082E6F4548068E4596AD3FB29742C238DE14CB7440AC512 + 711891D818630DBE1FE007018DC02DAC6576728AA76F7F90C35335126D195C39 + C886CD1B9AC71E7BFC295EF8FC4D2C7E9B229E8D9B1AA1663545A968AD2F9D48 + 4210929E208FB44D23657EEE85B5F3D446843DFAE2CD9BB9F3A1877EE4D7CA6D + 8B381C0E87E3ACA01E47C3B5289AD93F3AB9F7BF729CA39519D981F7D3277E47 + A4CE05220DAEB2606A96E19DDF20AACCB69432A49D1B5E1060B461FCD061AC31 + 044130B7E25BD8F5ED7B393256A5126AF2799F97FFEC2BC9E5D2D0CC63F7EFE4 + C8676E4256633C29892AA6A90D126BE782B32CD47442C55AFABC809C50CDEF35 + 85C5FCB8CEB99F97E0F1D3212C9CB870381C0EC759C337968A5A98247BC6A76B + 53FF95E39C2F8275EDD2BBE8A4EE08A48592D97D9D5844B5C2BE2F7F13134769 + 4D43B3A05310140A141AED9E2D8EC7AE1D8FF2E89D3B99AC46F8BEE2DA77BF9A + C1A185E82866FFBFDDCEC8176EC54421323028DF30792069D657E8B98D0D2C96 + 091DD3213D0ACACB5E46B414728A39E345CCFB0A5326D973BAAE9513170E87C3 + E1382B78F3E13C71A21FEB6B2F76FF678FF1B2AD5B592D732F55E2A4CD180891 + D65CC8ECBB4994166B468FEDE3E85D0F8235D9CD36DD828EEE1E94E765E3DC2D + 8F3EF018B7FEBF5B98AEC7144B795EFD8B6F64C3C5EBA94FCDF0D4676E64EAB6 + 47303AC1022667A95512660FC64DD7C213B299C259D1094A08BABCA0A55493B9 + 41668D36D9E3DE8E010ED9F8B4890B5773E170381C8EB382EB9FDEC9507FF75D + 8BFA7ACEE71976FF678EA112D3DEE7051F3899673157B22050997761EB600C18 + 6398FAF707C82DECA367CD2A844CFF36AFD7AA04410E212463C74679F8CEFBD9 + B3FD513C2138FF9A0BB9F4BA2BE8E9EF6562DF118E7CFE66CCB109ACD14D9742 + B4292A131A1D9BCCB530CD85D958A8184D9F9F4BA5833D4E4308D15267317F5F + 24B4261E15E679272E1C0E87C3E1F83E1C9D9CBEA92D1FBCE73FF3DCCBB76CF6 + 5E24CBFF58167285B516844D3720ECDCAADD88D8F6A44A9D88C4607D81150693 + 248C7CF1764A1FEC23DFD589108242BEC0C4D434E3A3E354C7A7E95ED8C335EF + 790D0B8716D2D3D703C630FCD8538C7EF976EC4C2D15152D3A20E815CC4CC424 + E90457426BC80B0540D524747B014ACC6D3234363EEC7162E2F8928B08FBCC08 + 66DA890B87C3E17038BE0F32A74643C433EFB9FA1A3E73C7ED3FF0F3AEBDEC52 + 7165E2FF793FDE1B1A8B742D8929787EB658CF5FA54536AF43D70D289A759366 + AACA81AFDCC6CA77BF0EE9070821E8EAECA0ABAB337B7E4B46A6B51CBAF751A6 + 6FB81BA2044BB69DD222056419C68FC4C4D6E00B89B1E04981B1969C90F82DC2 + 22AB314D8F71DCA68E384E60D4ACF976B7F4EC69BB4EEE57D5E170381C670BFF + EFA10710526C0F42237ED0E7BCF29AABC5A5B1FFFB8B65EE975AD338F3CA6336 + 0ED1D6648E829DDF78612DDA5A74A29B3510D618F49EC31CB8E301683C6FDE2A + 9F9E968E630E7DEB5E666EB817627D8263D15004855E9F89E7EBA9D8B19A189B + 8579812F8F5BA2ED497C0A21E6791A0091353C65C22FDEF5C003A7ED3A39E7C2 + E170381C6715DD8B0647F236F8C1C485076BA7A35F5922F3BF27E72DC8697056 + C9CF3115D528289F9CF2338BC2CED5440026B1CDBFC52DE9A0B2EA2D8F30BE72 + 31DDCB87B0F3D2322D3323A31CF9EAEDE8678E62B5664EB2D8390B243D03BC22 + 84C369D1E6A88E0990686BD3AD10CB5CB6C6F1AAE4044F223DAEB196C349CD1C + 16C9F3A7F31A3971E170381C8EB38A4FDDF82FC7FDF97E7206962EE26DBD4BDF + BF9CE0532A6DAB680A06D1D2B6D91914180DABCCEA984E3F97A65C5A936E8D18 + 30E624AD2549C2912FDF46E9D7DE4AAE58C022B1C670E8A15D4CFFEB3DC8D9B0 + E986340B315BDB3D2CE00912156362904804829C90B4467BCD3915CDD33FA1DE + 62EE5196E124C4B3420E0AB51C3876BAAE91DB1671381C0EC739C7D5AF7E2D6F + EB5DFA0B4BF13FED4B291B6997A2E95CCC77027A72C534AEBB3ECB6412329544 + CD65DD46EA84B9A3D658D44885E11D8F81B584952A4F7FF59BCC7EF10EC44C0D + 6BCC71899927315ACA0293086C765E1E82A290B46657D81FA86A22ED74194B42 + 426BE85101432258E39C0B87C3E170387E48BC64DB8BB8F0F0C8AF2F15C19F7A + 08D532CA8B794344680DFF16F4F8790430A62372483AB25D8C9C6F88ED9C2869 + 3CD3249AD99B1F627FA2A93F7D18F3EC5130591D8638614269FABFA5A918D480 + 25AE8BE6B0B2C2F1AE8585B49EB3916C214E212D6034A9135BCB422F871292A2 + B5834E5C381C0E87C3F143A2A7125EDCA6D59FD445A24ACA9FB7288B46BD8238 + D9120D9D5E8EC41AEA460316A924C2B6EC671CF75C5B8F18F9DA3D14A57FFC68 + 8F135B388E43B649EAB5382B97B0E45B5D8BA6C3224E697CA462C5329E84F808 + 7AB23C0C8BC5B3A2FF745E03B72DE270381C8E738A3889971DAB57BDBDB5699E + A88C73A0364D4DEBB9D8EC93245AB6D663F4787972594AA6DF21B156CDDF4AB1 + CC530DC2DA536F5F34D2AF1AA5172D87F1CA121DA63345ACB5CD54D0F967744A + 5D9126782611EDCAA3D3CFCF9BC8EA41FB75975EEAC485C3E170381C3F0CA67D + 75A7516212D2F1E5A371C8AEEA18C1BA0E54419E587271BCE1200465991AFB85 + 5E4152E77B465679A7584A5B76408E932FE9BDA06C899374EF456391CC0FCB12 + 82A6103AD996486C34253FC097DE098AC6583314258913170E87C3E170FC3098 + 1162A226C55F7B52D21841D6B1A08DF5979DCF79AF594F7E71296BF13CDE0798 + BBD718BB5E1E0830157D426565EB675288FFC0D9D9A672B07988A2B4F5B4352C + 4B0881CC1C96F4E3895F1740EEB82D9FB997B0F888AE4A3D3A6DD7C0D55C381C + 0E87E39CE2FE071FA463D3E63F6F8BCC2F79C276005CBC71354A0614DA3CCEBB + 760D87761F64F4C1A36045633DCE42B4E6E75C94BA057AEC7BBF9E3606A9D409 + 5F3F59C9452361D30A81F4254A191A4DB2B2DD67F0C2C5742FE824C87BE84433 + 3B36CBCCC80C332F4C40D534CF379D2B42D65172A2F0B1D0698AC1F7A9FA70E2 + C2E170381C8E1F985A148E4CA9E0230342FE6F2F17B0FAFCD5A862016B0C2289 + 5972D10A82B62287EEDA8B888F772EE6D441AEEC13EF4D0541BA9EDB16B72013 + 21DFC3B91042CC991E4220ACC806AA0B94A74842839082DE4B16B174DD3272F9 + 80C654776BA1D451A67FF9007A8B66FCC804E3CF0F537B610692469096983B77 + CB5C9228B4C75A9F3671A1DCAFA0C3E17038CE35F60F0FD3B168C143DD525D7E + E18B37ADDC72D5A5F8852242F9586B114A51EE2CE3F715983E34868DEDBC3A4D + 6D0D4A4A863695099FD5A85020B2AD8BC6987301186BB2AD0A79826D21958790 + 32AB9BC8448998131ADE72C98E7F3B4AE9E2855CB8753D7EA180F482746689F2 + 10D2434885900A2525A5B612BD4BFBE858D98DDFE5539F0AB159B4786B70B9B5 + 96089B3C26A24F0E1F396A9C73E170381C0EC70F89FB77ED4A8A175CF80BEFBB + 6ACB53C58E768FAC2B230E43268F0D135666E85FB608F5AA1CCFDFBC0BA6A339 + 37225BAAA507764683F55A1232E7B63C126BC849FF649E453A963D7BA0920293 + 682460A5006B78EAEE29869565DB651BC9B577902F95F10A69D7878E63E25A8D + 7076169344E99876A3C1188A6D8AE27925FA572DE4F03347D97FE7730442A5D1 + E4D9968E805C1BC2074E4B55A713170E87C3E1382789A2882BAEB86870E98A65 + 9EF0BC6CC9B7E43C8FBE258BA94C4D33357C8C9EC101C4AB14CF7EFD11EC740C + 8D45DA580C061BDA137CFE8601614EB12532D7ED9AB91542217D8949123009C2 + C2534F4CF0B2F7BC92256BD610E4729CD093D2D981B196EAD43495F1719238C4 + 1A8DD21E56C7A0059349C8AEE931BA831C3D7E9E826CBC4F02CF52006AA7E367 + EFBA451C0E87C3714E72D5D6ADBCE225DBDEE1E7F348CFCB6E3EC2F3917E8E72 + 7737DD8B96A0FC3C3D03FDAC79F526B4B2595D45BA422B6950BE3CA115D566C1 + 57C268E6FC8C790F39B9E8C8C6A95B0B4B972F64C3960BC9E5F359FE864AB757 + 9A83D5044A0ADABA3AE85BB69462673752F908DF477801D3953A3BEE7A028B65 + 2CAAF3546592E7AA53CCE818695179E83C5D3F7B272E1C0E87C3714EB2FDFEFB + 83DEBEEED70A99D6440821D31A08A5D29A06E5516C6FA377680952F9A8B6327B + AA93443AADA330D692846045EB54D316F560C95A5D4FC45A3B375FC418ACD618 + 9DA0E3748B0361B9E8F557E1E77208CF4364A2477801D2F3D35B768E422A94E7 + D13D3840C7824508E98152DC77F79324B3F13C2D33AB63F6D6A6391C56285996 + 3871E170381C0EC70F913FFED0AF6EEDEBED1914428294A0328181402889F43C + 84E7916F6FA7DCDDCB8E479FFEC258927C7E5F54A95A2CA1D684358B6D9334EA + 3552E1D0B021BEF7EB5B6D9AA2C4E8049DC468ADD39A8DDE32836B5722949F16 + 7648959EA394739F2B0FA1FCA610124A51EE28D33B34C4BE7DC778E1F17D9C6C + 7E2AC06C12918BF5854E5C381C0E87C3F143E2659B3773ED8B2E799DE7CF756C + A45B0EE9029E165BA64597424A66B47DEEFAEFEE7CDFFEBCFF8E5DBE59BB5FD7 + BF3C6D233D7A3024BF541D175AD1C8C3605EE4F6C91546E662588BB569E38610 + 92CE176F4CBB57A49A7353B273496F99D81002A4422805D2430845AC35F77DF3 + 0174734BE64481114BEA46D8D396A2E50A3A1D0E87C3714EF1A24B2EE1E8D864 + 6FB15478A390C7CF11B169F6040221D3D1E916CB038F3FF5D1EEC0AF7DEDBEFB + 00F6CFBEE94D6FEDDABBF77F77EFA9DEBEEAB51DF9E9C7A2AC16A3915C956E97 + C8792DA8F6A44BBD3526131669DAA6CC0574AD5B9E0A0AD1324144A4015ECD80 + 2C6B9B49A2D6A479183AB1DCF2D56F313D3C859212634C63C3C646523C6B24F7 + D4A4B863C25337C793E3C79CB870381C0E87E3BFC0C6C1415EF4F2AB57BEF54D + AFFAD0D0A2C1B7F6747596E6BE2B4EF221EDE43870F8E8E3BFF7B1CF7CF9E0F4 + C1E6A3EFBEE10658B36AC7B263C1FFDAAAC34FE32B88D24C89549CA4B91552C8 + B9844C317FC87A438834E2B944F698C2A61514BA3A5267A2F5A41A0263DE5D31 + F79A161E7FE8099EDAFE18A611C595899348B2FF8557BCE43CB6DFC51D0F3E78 + DAAF8513170E87C3E138AB79F1EAD55CF51357AF7BDD4FBCE4B7970E2DF8A952 + A914B46A0A71DC029E8A010B4262D13CF8D8EE3F3A387DF0C43C883DCFF2D096 + AEBFBE78DFD4D6352BDADFAEF6882C22DCA48BBA05633555ADB3C24E8127D39B + 10126B05C6EAD4B5B016630D535148FF9635E9D64CB333A4D5E86809C342CCFD + 2F04C3478EF1CD7FFC1A511CA7135445360EDE8292EC15DBEFE2F63340583871 + E170381C8EB357545C730D4B3A0A8BDFFF9E9FFDF879CB87DE562A953C4E1578 + 2D1ADF102D8BB8E0E091E1BD1FF8F58FDE70AAD7B8F7C1078C4C36FDFCCB9746 + 7DE755F3AFE8F6F3F84A01825A12335AAB51896304B2F9324A080A9E47C9F751 + 5221044449C24C14935FD147CFB24569CD07626E5BA491F73DCFE9988B2437C6 + 70FB576F414FD7F0A54AF3372CC8CCE9F025893883AE8D13170E87C3E138EBD8 + B4663DEF7DD3CBDF76D5E59BFFB2B7A7BB635E61E52957D96C01B7CD895F3CBE + E7E9BFBCFC455744DFFAEE774FF95A773FFA705DC9CD6F9C0DA27F5A5A09DFA8 + 84A491E4D9F01812AB51999BA181586BA6C390D64A502525175C772952793413 + 3C4F228044B3A6634E043D75EFA3A89D075956686726AE33998484D634D23891 + 02AC3A73267A3871E170381C8EB386EE7299D54B96051FFED02F7CF2CACBB67C + 209FCF89B9A120D91E88FD5EB3BA4466125846C727A73EF0DE0F7FF6D80F1062 + B9FDE1876AC1E62D3F191AF3DEC522F883B2F07AE7748C40083B6FA89985E668 + F4864311E4F32CD9707EB35B259D35D23A04AD5518A59F082B183D748417AEBF + 8382F2C9494B512ABAFD3CE3718DF124C2588BC476E9383E63AE936B4575381C + 0EC759C3659B2FEEFAD41F7FE86BD76CBBFC97F3F9DC5C3985983F14ECE4934A + E707611D3C72F4C65517AC9CFC415FFBB6871E34CF2CEAFB9B9B4465CD01A20F + 57048784944829F1A5420A8901A4104829E63E4A891492A52FDB4CA9B73BDB0A + 11695BAC988B076F0A8EA68B015118F2E8E7FF1D5D8DB1D636BB43A490747B05 + 16F945F252E249D995587BC65C27E75C381C0E87E3ACE0E77FFACD831F78DFCF + DCBC7AC5F28BF9810A0C8E2BC0C81C0E0BC471CC8DDFB8F50B77EFDAF51F3A87 + 9BBEFE7580B1B657BCE20F864786FFE2D51DA52797F69516D6F7C64821915862 + A3F1484547432C28A558BA7543765AD9A454D17A9E99A090124C16BE652D8FDF + 7427D5E786D1DAB64C3F6DBE19724AB1401411497D604A9EBE5922CEB970381C + 0EC759C58ADE5EDEFBD6372FF8E02FFF8F5B57AF5C7131ADD91027DC8ED3162D + 5F6BF816B55A6876EE7AFAEF6FDFFEC89DFFD973FADA2DB79037763AACDA6F2E + DB5AA0AFBD40C1F3F0A5A2A07C9448DD0A29249E549497F6D1BB745116412EE6 + 269B9DAC6324FBDEBE5D7B38F88DFB491283B1A63993A4D9FA9A75922821E857 + B9D26223979C29D7CC39170E87C3E13863B96AD3262EDB7AD1D25F78D75BBFB9 + 6041FFF97332617E8329F396DB936C0F58989D994D0E1E3E76E76DDB777CECC6 + BFFAD2F607278FFC97CEED8E471E61F9E64BFF71785FF4CE851716C5C093969A + 36CC240951A2A9269AC053B4E7722C7EE956FC7C3E1513AD6645B346A3A5D054 + C0ECE4248F7DE66BC459B646E36DD9E34548E6C62821C45A99DBF84D78CA890B + 87C3E170384EC1B5975CC2E5975CBCF2BDEF7ACBAD0303BDCBBFBFB03809C282 + B1EC3F7064F7FFF9EC977EEA5BB73DF8C4F4F4310E4E4EFE50CE718797DCB56A + C7ECED4BDE56BAD6EC9594639FB6209F6D7B086293A0BADA18DA72611AB2D552 + C0D99016B659109A090D6D78E09F6F261CABCCB91476FEBBB58D04CF1693A65B + F8E79F29D74EB95F5F87C3E1709C695CB87A35D75C75E9CAF7BEEBA76F1DFCCF + 0A0B20AC47E6D1C776FFDD473FF1573FF5B91BFFFDE0C8D418D3F5FA0FED3C93 + 89291677F73FDD1388770DAE2D4A7D4836679848954E332DFFC425F4AD593937 + 346DDED9CFFF0C63D9BB7317CF7CF13B186DE6D23EE76DF19C6442AB10D431FB + 181AFCD7E70F1D72CE85C3E170381CC7F3A6575FB7F6ED3FF3C65B06077A971C + 2F1FC42945C5FCE2CDE1E1D1FDDFB9F39E5FFEECE7FFE56BDB773EF6DF729E93 + D52A7B1EBE6747BFBAEA138BCE2BFE4EAE378F1DA53928CD74165874E945C7CD + 2069381636FB5F34B32D6AD5299EDB7E0B4992A4552456CCDBEA99A7319AB960 + 02612D0A717E9C2467C4F573E2C2E170381C670C9BB75CC24FBDF4CA4D6F7BCB + EB6FEAEEEE1C38DEB138B994982F2AC27A5D3FF5ECF39FF9CDDFFDA30F4D4CCD + 4EEE7CFEF9FFD673DE0E24A2F291DE7BFD652FBDB6FF67EADFF2C0805592AE57 + 5E46AE543CC1A7B027111820983D7C177D8B638685C11A99BDEDC604D6ACA6C4 + CE77311A1A430916EF27968071E2C2E170381C0EE0233FF30E966E5AFDB29F78 + E9B6AF747575749E4A589CCAADB0C6F2C2FE838FDD79D77D1FFCC2EFFEE177EE + F9119EFB3DF73FA485DEF4DE15EB8A17ACBCBCFBC27007781B96B070D37A1A8D + 99F33743E66441C3BBA84E4C50DDFB14FD4301BB0389ADDB96CA0C8E1B8376FC + 7120871CE8B15ED70B3076BAAFA56B4575381C0EC769E7D2C52BD9F4B24BDEF5 + DA575DFBEFDF4B58CC17157331DE478F8E1CF9D79B6E7DF79BDFF26B5BBEF08F + FFFC2315160D9E3F72B47AEFADA39F8F4AB388655D2C7FCBCB509E7FB226D9E3 + E401586B18DBB99BE987A058F6E958E1651D242D12CA9EBAB604013EF86B84BF + F24CB89ECEB970381C0EC769A3B3B393B2CDE7FFF8CF7FEF131B2F5AFF815C2E + 90AD43CB4F2E2A1A770513939333BBF73CF327EF7CFBFFFC8B0D2FB9727AF791 + BDA7EDBD1C3E7C98B1C5CB1EA9EA1ED6BCF3F50485E2F77CBC68799F898E99BD + FF69D498C7EC48C2D0A632937BC6C1D8797D25DF4BA628040B857F3170BF1317 + 0E87C3E1F8B1E4BA2BAFE4E2B52B56BDF3ED6FFEC28A654397896C20D80F222C + 66672AD1D37BF77DFE735FBAF1E34FEF7E76FFC1689A8337DF7C5ADFCFCACD97 + 70D1EBAF5DB0F2EA9750EAECF89E42207D3773DF1F7B6E1FF6E83468C3EC9396 + 814BF3ECCAB6469A060DA423D68598D737D2F86959A01DB9F99ACB2EE3F61D3B + 9CB870381C0EC78F0F6BD6ACA1D3CBC977BFED75EFDD76D9259FE8E9E9EA98DF + 5E79EA46D3380C79FAB97D37FDF3BF7EF337EEFCBFFFF0E47D67CCBB2AF1899F + FFE99FBBFAAACB3F536A16709EDA6968AD9C981D1B67F49F6E431A8BD106BDC7 + 22B658166E2D70707BA5C5B3104D8161C5712DACD96701E2EA596B14E970D6D3 + 8670BFE60E87C3E1F85170E1EAD5F47476A9975F77F96B7EE2A557FDEECAE54B + B728E59DE4EF6F71A2A888639E7FE1C09DDFBEE3EE3FFEDBBFFCD237C7BCC48E + 8C8C9C11EFEBF20B2E94BFF75BBFF0F12B2EDDF45BF97C5ED16C2E3D3ED3E244 + 711156AB3CFDF7FF8AF7FC28566B8C4EB058BCCD096A08EEFBBB51AC26732B5A + 323E1A615CB675DA483AD7E4615D7D65B59CBBF98BDBB73BE7C2E170381CE72E + 576DDDEABDF1552F7EDB155B37FDE69AF356ADF57D0F4E15D53DAFAEC2B06FFF + A1BDDB773CF43F3FFBD91BBE76EFEE5DE64C7A5F17AF38DFFF838FFEEAA72FDD + 74D1FB94E7F13D4A2E4FC068CDBE7FB90DF5FCE8FCBFF9AD25DA29E95D2F282F + F7987E3641A49605CD4A8D534C40F585649D2CFCED6395DA2B17C2E3879D73E1 + 70381C8E730D015C75C9E6F6DFFEE07B3F77E5D6CDAFF7BEA7A8982F30868747 + 2A0F3CBCF3939FFE9B2FFDE99D0F3D5C39D3DEDB25EB2E507FF4FBBFFE99CB2F + D9F84E298FDFA41008648B0773BC3B03FBEEB897D97F7F30ADA3B016ACC1241A + 6BD34165C18B05753FE4F12F4FA6C915E2D44E48F3356C3A3DB56A74E5191BBE + FAAF1EDE7187732E1C0E87C371CEF0866BAEC128BBF8431FFCF91B2F5EBF764B + 6AE5DB93088B56B161A9556BE691C79EF8F2FFF7A9BFF9EDD9675FD87FDFD8D8 + 19F7DE2E59B7810FFFE67B7FFFB2CD17BD53CAEF57883A5F0280A072E810959B + 1E48CD88E6D7414881D5E931AA0F1806DF9227DF2BA90D9B1FDC0D1082BC90A5 + 41FCFF75C5A597DE71CF7D3FFACA14272E1C0E87C3F1DFC274B532F0977FF6E1 + EDCB962C5EFEFFB777DED1765DF59DFFEC7DCEB9FDBEDE549E9E9E7A97552C59 + 928B5C30C5B181C1766C4A8040A81960412009211392ACC9ACC90CA904124208 + 814C02046C0CB6C136B62557C92AB69A8B2CEBA93EBD5E6FBFE7EC3D7F9CDBDF + 7D32991189586B7FBCB46E3FE5FABEF5FB9EEFFE95CA003A535040369321100C + 70FAF4D957EEF9F1C3BFFBDAE1BE7B1FDD7BE0B23CAF3B96AFE0D68FDE7DD735 + DBB7FE6EF552C8C5C27FF97CB5569CFFD91E70AB5FD7C5369C85B7DA29C8F469 + 96DCD0C0D1EF8D831268A12FEA5E94F58520AAC51BA29ED7010CFD477F47A689 + 96C16030187E217CE0BDEF78C7C2EE79BD337B53563FCE663378CAF59E7AE6B9 + FFBDF2DAB7ADB71EDB7BEF371EFAC9657B5E6D5BD62DBA7EC7D6AF8442C1193D + 39C445A445515E4D9C3E8B7B6C96E16215B9145A43F27997AEDE304ED82A35D5 + D23F475E87004248A7573BDBFE33BE23232E0C0683C170C9B96ECB16562D5FF2 + 86F252C86CA15733343A9CBCEF278FDFF5E423FB3F0B647FE7C081CBF6BCB6AF + 59E77CF8BD777EB3ADADA5B9563A88D7F52F042A97A7FF07BBC09D2910842E8E + 522F3FA726243A09CD2B02949694EA6A0B5DD7BD68475EF79FF13D99651183C1 + 60305C7206CE0E3BF15874C7CC6BF7EA6098CDE6F4777EF0E0DD0FFFD30F7EFC + D4D0EBBBF7376EDD4A667C9C74B4217430978DA355242E10F3EDE050F3587F2A + 30B7875DBFA01C831B366FE6339FFEC067972DE9BDA6B66CB6BE6CD2A577146F + CF3F7310F7CC308E65D74C4DF71331678804ADC94DB9284F95BE3541F5CC917A + D2420B5FAC44B4BC611D70D8880B83C16030FCB2B365DBEA956DAD2D6DB5B915 + B57522A3A3E3FD0F3EF8D4037B2E222C6ED8BA950B7DFD1D9FBEE3C6B7360D0E + 5D1FEE6EBF2260CBF96129C3B6252D8D26EDA9744E749F778538F0819E5B9FFA + D1B9A147DEF9CCDEE31F6A6FE752F5C3B8FADA2DABAE5CBFE60BA22A81B33E15 + 45A3A514D6C9F3034CFF643F52034AF9624217F3302A973CAADD092540E9993B + F0F32F2ADEAA99F13D87855CD5B4711C9944350000200049444154631B070F8E + 18716130180C865F6ADE75C7ADD705028EA81516B558B61D7302B603646B5F7B + FBB6ED6CBA7ECB865BDFF2864F360AEEC8ED3F18F15AE264CE5EA88AB64248A2 + 8E1D11522E15422C1531EBAED52D7135BA6CC19E2F4E4EFFF5D7FB067E70AEAF + 2F3F3C39F9FF7C3EDBD66FB06EBFF5A6AFC5E3B170AD1B335B3FD1CADC08379B + 65E0BEDD88BC872525CA7311C2A2D4BEA22807741D07226C11697718215BE182 + 14C4881015068AAE101602210A7917D85B9F80078CB830180C06C32F2D3B376D + 626E67C78DCC12742B696E8C373635C79700C74A9FDFB9934DCB172E7DCFBB6E + FFD3254B16DD961B1A922AE7D270D79D58812067FFED1EC69F7ABABC5DAD0B7D + 208A2344150129E5DC4868FBDC6868FB8AE686979EEFE9F8FDFB07A7EEDDB567 + CFBFBB09D70D9B36F1C10FFEEAC7172FECD9F1F32C87D49EADF63CCE3DF22CEA + C450C9B1F0B4C69680A2D4144BD76D8C25080849CFCA28E77625D16ED91311D5 + 36865F69A275CD6A8BA649F1B9EBB66EFDE9EEBD7BFFC35A821B716130180C86 + 4BCAAE0347EC582CF2735529B8CAD3AEA7D200524AAE5AB6C2FAAD0FBFFB13DB + B76DF9E386C6C6A800423DBD8540095393939CEA3BC17426898D45585AC4038E + BFD4E06984055A693F6A4B3FA9B12B1C5C79F3BC8EEF2F6B8C3DB438B0FDE327 + 9E78E6B5DD3FE7B93444A36CD9B266E50D575FF5DFA565F1FA791635324A2B06 + 0E1E25F3D891AAA510AD3CB4B0AADC8AEA2E20FE3DA135932F64E87C43987957 + 4738B73B59584A29B7FFAED533954B2519ED11D7D6B59B5C7E5BF7F6FEC9137D + 7D465C180C0683E1978F0FDD75CBEAD696A6F66298D35A974661D4665DF4F70F + EE494CA6FA006EBE6A4BF31FFCB7CFFCFDA6CD1BDF212D3F3C65D369526363F4 + BFF412FD2FBD44B2FF1CB81E538EE4DCF41893F91C9680F9C128DD8108F3C331 + 1C0142CB42D74BBF6F842560713CFAC6F72F5F70F0405BC3A70229FEF1919FFE + F475CFA529E906EEBCFDADDF686C8CC7B88857A1EBF9335A3370F45526BEFB24 + 789E7F3C852FC203EC5A3550A771A9D6907D19CE392956ED6864ECC53CA9A15C + 694FD5299D82DA6F39A93D9A84459B965F1C6FEE78E289BEBEA7FE237E0396F9 + 3330180C06C3A562E1C2857CE623EF79CFD2450B6F2EF6B4484C8CA101DB71AA + 02602E9BD5F7DCFFC847BEF69DEFBF7AF3D62B1BBFF8B98F3CB276D5F29B9C48 + 94D1F3E719DEB38FC4634F228EBF46DB82392CDCBA8145EBD6302F14A597001B + 3AE6B1A1B58B8E508CE15C9AC3C9315E4E4D2194A6D176B0A4F4DB700B4A413D + 6C59C1F9D1F0AD5DDA0D1E94E1DD934383B36666CE07BEF69DBFFDBD4DEB56BD + A73C0EBE3A805F4C589CDF7F84B3FF703F01B71CFC45413068ADB1A47571D7A3 + E06A08ADD14360F7806B2B26FB7233DC135DE798D2CAC3559A06CBC612D28A22 + 7678733BBE79EA427FCE880B83C16030FCD2B076E142EE78EB1B7FA7ADBD7579 + 31D465A62619999CA2A9A9A9EABDAF9EE87BE4D39FFBF32F5EB16EA5F5EBEB16 + 7FF79A3B6EBF5E098B73BB9F22F7D4B358639304B5BFD4D178C355D8ADCDC878 + 0C95CBE39E1F4648816DDBB48623AC6C6EA727D2C47836C591A9618E4F4FD26A + 0769080448E55D046049BFB59325105DE1D035EB1B230B8FCAC8832383033372 + 1136AD5CC9073EFAFE2BDE72D335FF140A06ED7ABD3AC42CC2422BCDF9038799 + F8E7C7092A98CE67085876A1F9A6FF2989BF6453B2272A37A12B123B75394544 + B56ADCB060F4E54C618699FF79A5FDE516292A7D0CCD949BA3D90EE00B230840 + 5B03BA7968E0DC03BFE886EA465C180C0683E19271666020F4B9FFFAC13F8FC7 + 639162F81D1A1EA2B1314E2010441402BCE77ADC7BFFC31F3FFEF24B27EE98DF + 71D7351BD77DDE8EC719DDB39FE17080878707381308B272512F8C8C937EB98F + DC9973240EBC883B3A81D33B8FD0F25E742A854A671196453C186255633BCDC1 + 0887472FF0C2F818C94C0E37051D4D11A49025592084A0231C5CBF361E5A73CC + 0AFF7078A05A602C5FD813FDEC273F707F7B5BF33C2AE444B1BFA8A8EB34F893 + 4E4F3CFA34C9EF3F85F0142070A464249D22E23894AC8BA2B898D5372997A416 + 533455DC22DA2DB9F07C0A34283459CF4508812D2D2ABB9F26DC3C31CBF19F2F + 26790A08233684E7CE79FCEC85F36752465C180C0683E197812F7EF2433BDE70 + FD8E8FF939139AC4748260638CE6CE0EB2E92CB6E507C1C181A1936F7EF7C73E + BD78D972DEDED5FCCF8DB6D529DBDB79CECDF04FDFF92167CE5C201A8FB065ED + 0A1C099E56381DAD4437AE22BA652DA1C53DD84D0DA49F7F099446CEEDC4E96A + 4727527404422C6F6CE3C4E428AF4E8EB3A0394E77AC818AC48F92F3D01E0EAE + 5C130F2F3B21C23F1C181C50004B3BBAC55F7DE90B5F5EB16CD15BAADF5DBB0C + 519D4CE9E6721CFFFEC3E41F3D8CF0BC92801042600BC1583643D47110089456 + BED811FE56677602D1331A5848249D5B1CFAF6A748675D329E4BD8B6CBC2A250 + 3092551E520802D22E7FBAE0865820435A6D38D53DE7EB43FDFDFA17F53B30E2 + C26030180C9784EBB76DE3FDEF7CDB671674CFDB0A02CFF31819B84067F73C40 + 9049A60814F22ECE9D1FF8FE8957CFDCB7A921B4E5BAE54B3FDFF5F6DBC4B15C + 9A7FFED6F7F03C4D7B5B331FFAF07B68EB9D4F78D51222AB9611EC9D8F6C8821 + 2C7F6C7BFAE871F2A7FAC19234DE760391D5CB110D7172A7CF13B36D9635B573 + 6272841D9D730849BB2AF7A292D670707567C852377EE55BBB8F1D3BCCFFFCDC + 07DFBF63CBC63FB42C5BD40A8BFA9DB73599648AE3FFF213D473C7A1D04DB328 + 2C001C69E12AC554364BD4B1515A210A3921331D8BCA1E1915CB2D694170259C + 3E9B2433E6127502485118EB2EFC2DE594C24313B69C3A5BF6B71514624E5CEB + C38970F0A5E1F171232E0C0683C170F9624DE9E8273EF16B5F8B45A3B15432C1 + D0F9B384E371A24D0DA0219F4AE304020804CF3CBBF7ABBD9DB1CE777FF87DDF + 6ED9BCA1B1F58A75DC7FDF830C5E1862FB3557F1D18FFF066D0D1102A1901FD6 + 65E58204E85C8EC463CF403A03964D78DD72443088DDDC44E6D53E743647C4B2 + 98178D1397C2FF3815790E350E465B2474F50B0FDCF7CCB6AB3647DE76CB4D3F + 884622C1CA3C8BD9F22BD09AF4E41427BFF143D49133554B1E4208FF93054721 + 643B4CE6B2A45D97582080A73CA49C39E2ABBAAFA77F3FAF1413F91C0353193A + 5747481CF74AC2A4B80F5729F2CA236A07669E60E1588B4DBB2CE8391EB1BF31 + 70E1C22FC4BD30A5A80683C160B824FCC6C76EDFD9D1DADCA99487B42C5A5ADB + B084424D27514AE3380E00A9741AA7EFF0DB6E99DFF866FBC0C356F49D9F4408 + F8C0473FC89D77DF41246063AB2C4E3058116E45D57D379D41A573A03C849B27 + D73F4468791CA440C622A8F149B06D9AC361BCD474B90CB4A21CB492886DDBD7 + 2EEAFE87456F7FB3DBD4D010AB4DE0AC2F2C20313242DFDFFD107D7EACB0EDCA + 685E19E0FDFC8A39D128AF4D4C90571E2DC100B6B4ABBD055DDDE922A73CA672 + 79C6732E51DBA2A53F44F71BC29C6D4C929B5055E2C355AA46588872BB2D51EC + E6E93F6EC0DABA4E595B5F80678D736130180C86CB97BC1ABE76FBE677353635 + 36DAB64D201466F2A1DD64F73C4FFA781F91B52B019838F42CBDF6D4325B2265 + 384668D16AA413C0B124563E4D4082551022332FBFFDFB5628889A9CC41D1E05 + A5C8F70F211C0BF7C220B997FB4A590C99740A95CB555DE1CF742F3484C3F4BE + E3AD4D6DDDF35BEAEFB352E4F8C33E92636739F5F57BD067277D5150AC062938 + 167EF5467969A4F87A4320C06032C968264BC092385294248CD29A9CE7329DCF + 3192CE3098CE91F1341DE1006DC1009612C8368DDD2E197F2D0B08F2CA430111 + BB5CEA5B3E47516A5C5A3C052D40FACECAB835AFF39153FDFD465C180C0683E1 + F264DB92A519D7B10E2D5BDCFB2EC7B1652E9723F1CC3E2CAD114A63F5CE2737 + 7C1E79E2393FEC590EE155DB70DADBC92526C173B12CE92F082845F580B06A71 + 81D24C6B0D9D5DD82B9692B625B9175E449DE92F77C20452A969B49BAF3010A4 + 1F7845D951D08100F1EBAFA365F9126ADB7B53EB5868015A31357498F3F7DC47 + FE954CB994B4B40C521014C5C7C5605FC8F9B084201AB019CBA419CB6499C8E6 + 49E6738C67B20CA7B38C66B24CE5F2643D45C8B658100D11B12D94D60821D002 + 9AD6399C3B98269DCFA30544AC8A1E22A2EC5B083173414717CA5895960D4743 + EA6FCF9F3D6FC485C16030182E4F8E9C3ECDE0CBAFF66DBBE6AAF59DEDADAB92 + 9353F0CAABE5001B7270FBF621948BB01C9C9ED584D76C647A3A41381AAD0A8A + 172E5C201E8F572C619483BECABB64854DDA09F2D33DCFF1F8BEFD9CC964597C + EB9B701209989C2CC5D3743289CEE7CB391085C447840029D1E110B1AB77D079 + C55A10F5C44C754A82E766993CFB3083BBF792DBEBA2B5AA1014457B4220842C + 39176547A37CEB488925613293C1538AACA7C87A1EAE5228AD9152302712A433 + 1CC412B2B4502204786141D32A9BA34F8E13C02228ED2A2153D44095068DA81A + D6EEE75D0864EB059DFDFA89FEFE69232E0C0683C170D9D23F9D6059F71C366F + 587B4776741C4E9E2905E9CCF8799C401E198E135C7C05E1B59BC071E87BF938 + 879ED8432010C4090670820EF186DAD2D142A0D69AE9AC623A93E10F3EFF471C + D87798D3A7FB3979E2142F3C7F906BEEBE137DB20F5928054DA72BC5052005C2 + 926059E8A6061AAFBF8E8EB5ABEBE461D4D48668981A1961F4B50748BC769CD4 + CF3CB42E578594DD0951720C449D65919248D18A88E5D0100C319DCD90F3DC42 + 9B74415328C8FC588458C5D290D6BA3CBA3DE071667A1AB78F421752AAC545CD + EEAA4EADA26F862D8414C2DABBA7FFCC8B465C180C0683E1B2E6DCA9D113576D + 5DBB3592C92CB6FA074B112EB06E2591452B08ADDE4CB06731D87E32E3E15D4F + D1B7EB694EEE3DC4B993A759BC612D9663D53808FE6D2E9B23DEDEC93DDFFB01 + 07F61F259BCDA394E7CFE0C8B92C5EB194EE25BDA853670148655290F71B4D09 + 294148846363AF5CCEDC37BF898679F3EA2678564763CD99178F737AFFBF11F6 + A699FA915B33F2BD2C24662C8D949EAB1617288D10928065D11A0E6349816D59 + 7445C2744623D8A5865F05492120AB14A37917B944307A280B59AA9C985A7131 + 435814E552B1A396D008C4C0E3174EFFE452FF06A4F93330180C06C3A564283D + 91DD7EEB7B6E79E591271F2C053569115ABD86E08A3558CD2D7EE502E06673B4 + A4B2DCBCF31AAEBFE64ABA6331FA0E1DAB1FE401DB0960390E42DA9595A968AD + 519E269D4911E95E00B6E38B09E937AA1252806D4167074DFFE536BADFF44682 + 8D0D179B99EE6B00CFE3E8137B39F2E37FA1AB5331FE6016BCEA96575507522B + 222A8EBDD618293A1A96B498138BD3DBD84853384CED928CD29A899CCB40C645 + C4250BD74750D3D5952517A722B9B3F89FF0B76F6BBDF99A2D575EF2DF802945 + 35180C06C325657474948E8E8E7C2097EB4729901225254E2454137005D9E904 + 1D8D0DA0053630A7D561E0C5134CF42EA0A9B36D46F0745D7FBAE8B53B77F0D0 + 833F432985EB7A5852E238169D9D5DD8D15021A7C2C27202A880836A6C267ED5 + 26DAD7AEC67602AF2B2A7C9724C3D3DFFD11837B0FB0FDEE76267EE6219235C1 + 5C54080121989921524726558E4CAFEDCC55120CFE9379AD18CEE6C9788A66C7 + 62CEC630A94917E5A982A9228A26C4EB9E53A9DB78F18E163888958EDF4ED535 + E2C26030180C97352B7B7A08DA566FC901B004966DD78BB4E88A544489A03914 + E0D88F7FC69C2B5613E96AA37D4E2796E51BEDFE128866F1D2A57CF6F39FE6EF + BFFA754686C7B12CC9AFBCF52D6CBC720399BE530821D19620B27239E1E58B89 + CF9D839C51DE3A3BD9549AA7BEF96F5C78F2101BDFDB4EFA908BD7EF5DC418F0 + DD0B4DED424E8598D20525A17571187D4D5A47B57049E4F38CE45C2C605E2840 + D092C47A029CEA9B2EB5D4A8FEF6AA745BCDDDB2DCF1B585466881236493C8E5 + E702678CB830180C06C3658D72F308CD8272C7CAFAABF0A1A64674D04164CA63 + C483011B26D29C3E7C840E6B2DCD6DCD5896EF7A844201DC6402271667F3964D + AC59B786FE736789844374CE9D8FD68AE4613F3F31BBB487AE2D1B1072B6F4C2 + 9A4CC7E23DCF63F0E147705F799585373710CA48A60FE5EB38016286842875E5 + 9C292D4A415E690F29ACAAD92195CDBEB5D64CE6728CE75CE2B6A4395068E5AD + 057644613BB2CE86ABAB5C66B42A17FEE7852877E9D480A325F3A5BDD8880B83 + C160305CF63CF9FC0BE86DEBA3AF8D0ED1DED04824142C946D56077ACBB169DB + B185A9575F233B3189561A118BB374F37ADABAE7212D49D5302F017839B4E721 + 2C8B5028C8A2254BFC38AB34834F3C0B7DE74936C499B369BD9F9B31232F41CC + 2A34B4D60CEE3F48FED4193A17C7695F2A19FAD7ECEC2B0E6296A69CA2FEC3BA + 4E43C1C1416B94560CA533482198170E62578C65D702B209456387ED57CDAA42 + 1549B1FF45E56E75494FF8864985DC108517FD63719923AC45C0E3465C180C06 + 83E1B2E6E6ED575B0F9C7CD91ECE26688BC6F9D5D59B684A6709C51DA8BA4E17 + 849A9B086DD98898D16ABBC655D0A05249BCD16112E363A8C6569CAE6E9C581C + 2F9D66E2A9E710AF9C2417B468BB717BA1CBA7AE1BF1679B6E3A72B28FE433CF + 21DC3CA14687D167D2883CB3BA16A59E1925BFA2FEEC92E27E5C378F6DD9154F + EAC2C0525F584CE732B4041D02D22A0987F2016B12273D5A3639588EC4CDAAEA + BDD549E59875D85AE14D4A2BA462FEA5FEFF6FC485C16030182E293BAFBC12B2 + A3B79F49E88E5B16ADE0C5F10BFCE8D523FCDAE8285DF16829E4653359FA4EBC + 46EFD2A5048381D9450580A7C81E3F4AF6F8F3A84C02A1151A700311F4861B89 + 2CEC25909822654B623BB7118AC56AB6F1FAC2C2CDE518DBFD044E2E0B40EE5C + 0E3DA0671116F57C89FAD916451191F57204AD0005DBA0EA0D5A2B94563406C3 + 3346AD576E277D44E16CB3685E1E60F870A6E4B668216A323E6A84C6CC21AB08 + 245A2B025A3419716130180C86CB8E9B765C0DF9E9354AC9214B382361CBFDED + 0DEDDD5C3DB787952D1D7CEBE4414E9D3C45D7C21EBCBCCBB1A347F8E177FE95 + 89D141DEF4F6BBB9F99637D55C7E5737B0CABC7298ECB13D682F4FD1D00710B9 + 14F9234FE2B6B661AD5A42749545BCB3BDAEB0B868318586E1E70F638F8D979E + F05C5D9CC1511A0146859350762D6A82B9A87E4269455EBB04AD60CDA995FA65 + 2284C4B644A135B7AE500315DB121A2B07D9518FF66561860FA7A134456566B9 + 48E52C577F669960C6CC55FF603B8CB830180C06C365472E9D6CEB8A650F6841 + 763A95FB2BCB11EB5E9A1C66DFF933F436B7B22ED6C5033FBA871C9AD37D2751 + 4AB164CD3A763D7C7F611CFA6CB59402959C26F7CAC182B0982913742E853B3C + 88D3D645C009945ECF64328442A1BAC2A2D6B5C82693A40E3C8FF05449214C77 + F7905FD9453014C2B224622A41E4955761626AC604D499899CC51C0E85A71501 + 1928CDF9D0755C8DB29B51238804E5A591C20772038A8EEE202FDB16DA55BEBC + D0A2FE30D62A2743A375E5512A406109DDFEA69D3BF9E9AE5D465C180C0683E1 + F2C1B28223C99C7B6724E07EB9299CFF3D4F69C63269BEFBDA111CDB460A81B6 + 04DFFABBBFE18AABAE65C775D7F2A3EF7F8F78430B5BAFB9BAEC0CD4C11D1B41 + E5D2B3EF5C4864BC09CB298F1B4F2513044B23DB67972EC517C74EBC864824CA + 4F489BF66BAE25DF3297A98904A94C06E5794C2F5942C30B8788BE741CADFCA5 + 1951D995B38E84B1A54D455E26F525809E79FE35064EF161E684A0736D00272C + C94E2BEA2C88BC4ED7D1821122412BB0B58C6753A94BFA7B301D3A0D0683C150 + A2BDBD9D9D3B7762DBFFBE6BCFC7F7ED4111BD6F28195A9FC85B7FE169991042 + E05982ACF2C828174F7928A538B477375FFED33FE6D4AB2FF3BEDFF818F178EC + A27D267526CD6C698902C8B7F562C51A28F69A509E87A754555F8DFA45A7C5C7 + 9AC4B16355915F3B0EB105DD7475B5B2646937F37BE6128A46109130935BAE64 + 70EB66B0AD52C7CBEA7D542E47C88A9E1333973A8A9D32EB488BFA624843F642 + 1E94A2A1C729E453E859CFAEBA2557B5F61085016B42CB06ED7997F477649C0B + 83C160300070F3CD3773C71B77DCB86EED928F1F787EC7B77F76EFA3F7DEB367 + CFEB7E4E00B76DDD2ADC80B5F09D77BE6DE382EE7983B6D48FE5F2B95B1C5B58 + A74F9FE6E9C77F86CA65D8B4FD7AB66EBB8A81FE7E1EDBF538BB9F7E96DE450B + 89354467F51664AC11212CB47667EC396985685AB1B1144AF3B92CA7CF9F6351 + 4F6FBDB85C97D4C4049C1FA8F037045EBC8968532B0889928A96960662B13083 + 03A38C8F4DE0AD58CE402040E7D3CF22BCDA3C8B7279E8EC0750BB3023CACD27 + 66ADF1F0DFA35D4D7A54D1D01964E458BAFE5B67B16AFC6516CA952D7EA7CEC6 + 5C2663C485C16030182E3DCF3DFC8AF8CB3FFED457172DEE59BA64C9E2B776B4 + B7FED96836FB85A78F1CC9BAEECCEED0575F7F03738256DBFBDF77FBDD8B1775 + BFB7BDA36D4334169102C191C347D8BFF7395E7AE928C9F121E674CDE7B6DBEF + 62FD156BB16C1BB5760D57AC59CD3D3F7A90BFFCF2DFF0C94FFC26B158A4EE71 + 396DEDC8A62EBCB1737EE0CF6A32490BBD64250DEBD6128AC7014826124C4F4F + 31A7BD132965DD58AB6B23BD86E9D7FA909EF2D34405605958ABD76359B61F88 + 2D81D6826050306F5E3B966D333A3C86B7A89741A0E5A9A709E9723F8EBC7271 + A453B5733D8BCA10353243CC78953A4B269ADCB44B305A5E0E29568C943E5531 + DEBDEC6C94976D7C81A1104263491A9C58EC92B60037E2C26030180C004C703A + 128D47E703C41AE2F2965B6EFAADDE853D9BBFF417FF70D7E485E1C107F6ED03 + 60E9C68D5CD3149FFB818FBFEB0B8BD7AE786F734B63A432186A20E804C8A692 + 6CDB712D6B56AF66E1E245D88E557A8F0C38CCE95DC8AFDD75075FFDFD3FE4AF + FFFA2B7CE6D39F2210AC697AA534794FE1B62E24DB378C959748CFC211026BD1 + 629C60906C3A452EEF323539413812255A2A43A5EAF25DD7B9E7B979A69EDB8B + AD340A85B02CB06D62CB56633B0E5AF9FD2794F29710A494CCE96A4529CDD8C8 + 287A712FFD019BAE5D4F12F134AE72710A43D504A266C9A2C6DDA835177485B5 + 5075F8E5E74AD9191AACA02E9B1DF59C0B59AF53A7A85A4A11802D08E7DC7C14 + 9834E2C26030180C9794AEF8FC4C369D1901DD0D026959AC59B762E7E76FBDE9 + C0A1A7F77DA93164DFF7F2746AF0F3EB577C624557C7EFF4AE5BD9603737D6F1 + 0760E9CAE52C5FB502A51533331ECA2D9EC2C0BB56ACE39B87F673EFF7EFE357 + DFF90E32D3093283C364CF5C20776680402A89A514B6720AB348FC6587CC8501 + E26D2DE484209D49E309412C1EAB136567C9B8D030D57F016B32014A95963644 + 7B17F1B9FE2876610984F6858516BEC870028279F3DAC8E67224A7A609CEEFE6 + C24D37D0B47B172D19BB62FCB99EA1152A5543B523516F294497BF29214A5350 + 8BFE849415E7A58BE5AB82DAC9EB3366A3553D2908202D478816232E0C0683C1 + 70C959BF6A9EF7EAF1935FE9EE9EFB3F842C9737B4BBF9793B17CCFBB34D5DED + FF2B95CB4F754623CD48899A9E86E646665BE0575A5F4458F8DB4EBFF02221CB + E68E156B78F489A73963077106477C67426BC2C5F24CAD4169BFBC01B084C07A + E165E4F245C4DA5A191B19A6ADAD9D402038CB653C338ED1CD65993E7A0C2FE7 + 82D648DB42484174FB4EFC41A1E5F06F59C2AFF61402A5C0711C7A16CCA1AF4F + 914E2609757591B8F98DE8679EA56D6CAA2A8B72768151E36588FA0E47B53C28 + 2F7D78AEBE68F7CD59754B457E88106069293A70E6027D97EAB764AA450C0683 + C100C0437BF7F296BB3FFAE7274E9CDA5B8C46EEF008EEB0DF582AEE38566734 + D20C20B42673E415C8E767B936AEFD5713E835240E1C2577E234002DE12877AC + 5C43E4C2108E52E079857F2EB82EB81EDAF3D04AFBFF3C056E9E6C32CDE9D3E7 + 686C6E21120A574555AD35A96412CFF327A9A65209945228CF23393DC5D97DFB + C91C38E46FAB1874DBBB6858BD0E292542FA0DB4A4947E658594484B625936D2 + B2088783CC9DD781130C62D9164E4B33891B76D2BF6A11790B907E79AABE88A4 + 105582A13A67A25200CC70064202A5455D0935F371B9B78510558FD08532D636 + 64EBA5FC2D19716130180C86121B7A7AB2FFF88FDF7BF7C8C8F824AE4BE2A903 + E0BA759A5069F227CF32F5E8D3A8648AEAA6DA02E56994ABEA863A9D73493C77 + 98ECBEC3BE60287EBA68ED97C485427BCA171335E596C94C9A44672B89BC4BD4 + 09108FC64A22C7F33CD2E914AEEB128DC6F0DC3C9EE7128944417968AD1879E9 + 38D9C79E44E55CB42AA4540A49F4865BB00221BF44530864E156946E45416058 + 4829696C8CD1D1D98A1D701052E284C3E4D65EC1996B7730DE102967565C64F2 + 59B12C142AFB65D47EA65CF25ABCC9E725F50B6BCB82AEF4AABF9399F685D020 + 3C9AB1175ECADF9165FE940C0683C1506460729290131E0BEB7C5FF3F153B759 + FD4396BF1451D1F6BA1CB1506353644F9C41791E3214403A0E9EEB9148A60838 + 0EE94C9640C0F1AF92737972A7CE33BD6B2FEE8953BE2B514B61F943CF28B1D0 + 28A5199A9CE2B5FE61CE0D8DA3DB9BE9D9B49E582C56EA989D4E26406B42E108 + 524A46C74608060258D262E0423FC14090C10387483DF428E4BD921812B64570 + FD9574DCF416907E2664B194B432F0973C06516E9A158E84C86472E473F9F284 + D27084544F0F93CD31BC7C8660327D91ABF972374E2A5A6295DB8BEB1AF74210 + 5E6D313A9A63E24486CAA512513CDE82109A7D6F6587496B450ECE8E7534DD3F + 383878497E47C2FC29190C0683A11E5FBAFDB637BF61FE9C6FB78443ADC58055 + 3D4BA3E22A5B0AB01D44C021B9A297EEED9B00C1E4D008E2C469C4D434B9FE21 + C8E44BEE0115150B5A29DFA950AA466B68C65369359D48CA918904F99C2AA539 + CA80C05DDA9DDCFC8E5BED742677F0C5574EDC7FD5E62B3EDDD6DAD4AA3CC599 + C777234301C273E6913CFE1AC98307F0A4453093AB4A82104240673BDD9FF83C + 4E439D195E85A9A5C5DBE2B452AD355A295CCF239BC972E2C459B2E9149EEBE1 + BA2E5EDEC3737D01A32627890C0DD1383C426472123B9D4379AA8EEB402969B5 + B4DFE27DAD7C0747089AEE0C72F2A5494E3D3A55EA5721A59FE429844494123E + CBC2A33C1BC5DFBE52CA1F98A63493E8E7EF3F756CE393A3A3465C180C0683E1 + 17CBC76EDCD97BF7F2C5DF5DD418BB925A8151233604E05936D177DE4AB4B9A9 + E4440CDEF31056B14995A89DA181BF0CA2345A798520AAC9BA79FAC626274F4C + 263E75EF99FE873684A3D7B6DBF6CD41648F166825797954B9CFEC68A2BB8600 + 00029B494441549B4E3C94D6DA554E603A100EB13116FEC89D6F7FD357545F1F + 8133672826658A199346CB41D78DC7E8FAD0A768EC5D7CD14EA1C5632B090C55 + 0ED29EEB313A36C1F9B303E4B3593CCF1716C55BEDCF5527EF65B1B524924C10 + 1BE82774E84582A59E18154B19750546619F42D0F9EB218E3E3DCAB9271325C3 + C72AE48694724484A89A2D52EA8751FC4FA9D279E494C8DF6B27163EB66F5FFF + A5F8DD986A1183C16030CCCADFED7AB26F2093BDE50B9BD6BCD0198DCCAD722D + 2A268416A7735AED2D656151785F74F53232FD030517BE3A7C8B82038052A0A1 + 3F913C7B6264EC646664FA3AAD75E3A4EBBE7BB11D183F984E3E9ED4EA7B2121 + B50C0470733926920902F1B868D4746CB49CDBE65BCEFBDA5C6E387DCF430801 + 8D419BE6A085B4EAE41A14961EDC488496F77DF8F58545E1A355D34324A0404A + 89B634CDCD0D8C8F4F93D40A9DD56095AB62BC42932EA535C27148C6E29C8B84 + 495DE8674134466F633352488ADFA416C25FEA2936B2A8D04422260945219FF0 + CB7C8BF928E5AEA0FED45851474C5596A01685A1062C70AEF042373E06DF36E2 + C26030180CBF503CCF239DCA0CEF3DDFFFD9372FEAFD3F8E6D31536094930F75 + CE452B85A8E890195BBC80D46320DD9A105FB86A462994D6BC3C31F9933F3970 + E43DB622F7C658D3D3AD8E5CDBE1D837B6DBCE8D6B54D8CD2A75CED5FA18E861 + EC80D4E168B76359BD31DBEE8ED9B66549E10F48F3750A132997E98C4B53C022 + 1EB6B1644592A410B81DED74BDFF37699ABFE0F58545A5C0A89C402A01A591D2 + 4FF29C3BA78D938521675A6BA4066D597E3E48364DC00916CC9A3C134FECC6F6 + 5C4E4F4F92686960BD16753B628962C589F6EF07E681B024D291756792E81A83 + A82821B4A81557C5EEDFBE1C69D1E257AEDFBCF9DB8FEFDFFFFFFDBBF9BFDD06 + 586E1A7009590000000049454E44AE426082 + } + Transparent = True + end +end diff --git a/main.pas b/main.pas new file mode 100644 index 0000000..fdc4018 --- /dev/null +++ b/main.pas @@ -0,0 +1,220 @@ +unit main; + +{$mode objfpc}{$H+} + +interface + +uses + Windows, Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls, + ActnList, LResources, ExtCtrls; + +type + + { TForm1 } + + TForm1 = class(TForm) + ComboBox1: TComboBox; + ComboBox2: TComboBox; + ComboBox3: TComboBox; + ComboBox4: TComboBox; + ComboBox5: TComboBox; + ComboBox6: TComboBox; + ComboBox7: TComboBox; + ComboBox8: TComboBox; + Edit1: TEdit; + Edit2: TEdit; + Edit3: TEdit; + Edit4: TEdit; + Image1: TImage; + Label1: TLabel; + Label2: TLabel; + Label3: TLabel; + procedure ComboBox1Change(Sender: TObject); + procedure FormCreate(Sender: TObject); + procedure FormShow(Sender: TObject); + private + function NewElement(edit:TEdit): string; + + public + + end; + +var + Form1: TForm1; + +implementation +{$R *.frm} +{$R font.res} + +var i:array[0..1, 0..3] of integer; s1, s2, s3:string; + p: array [0..3] of integer; + e: array [0..4] of string = ('Normal', 'Fire', 'Earth', 'Water', 'Wind'); + a: array [0..9] of string = ('Status', 'Abilities', 'HP', 'SC', 'BG', 'S.Change', 'Cat 1', 'Cat 2', 'Elemental', 'Incantation'); + c: array [0..7] of TCombobox; + d: array [0..3] of TEdit; + s: array [0..3] of string; + + +const + MM_MAX_NUMAXES = 16; +type + PDesignVector = ^TDesignVector; + TDesignVector = packed record + dvReserved: DWORD; + dvNumAxes: DWORD; + dvValues: array[0..MM_MAX_NUMAXES-1] of Longint; + end; + + function AddFontMemResourceEx(p1: Pointer; p2: DWORD; p3: PDesignVector; p4: LPDWORD): THandle; stdcall external 'gdi32.dll' name 'AddFontMemResourceEx'; + function RemoveFontMemResourceEx(p1: THandle): BOOL; stdcall external 'gdi32.dll' name 'RemoveFontMemResourceEx'; + + function LoadFontFromRes(FontName: PChar):THandle; + var + ResHandle: HRSRC; + ResSize, NbFontAdded: Cardinal; + ResAddr: HGLOBAL; + begin + ResHandle := FindResource(system.HINSTANCE, FontName, RT_RCDATA); + if ResHandle = 0 then + RaiseLastOSError; + ResAddr := LoadResource(system.HINSTANCE, ResHandle); + if ResAddr = 0 then + RaiseLastOSError; + ResSize := SizeOfResource(system.HINSTANCE, ResHandle); + if ResSize = 0 then + RaiseLastOSError; + Result := AddFontMemResourceEx(Pointer(ResAddr), ResSize, nil, @NbFontAdded); + if Result = 0 then + RaiseLastOSError; + end; + +{ TForm1 } +function Tform1.NewElement(edit:TEdit): string; +var t, r:integer; id1,id2,col1,col2,row1,row2,id3,col3,row3, type_:integer; item1, item2, item3:string; +begin// + with edit do begin + t:=tag+1; + if t div 4 > 0 then r:=4 + else if t div 3 > 0 then r:=3 + else if t div 2 > 0 then r:=2 + else if t div 1 > 0 then r:=1; + + id1 := c[r-1].itemindex; // r=1, id1=0, id2=4; 2 1 5; 3 2 6; 4 3 7; + id2 := c[r+3].itemindex; + + item1 := ComboBox1.Items[id1]; + item2 := ComboBox1.Items[id2]; + col1 := (id1-1) div 5; + row1 := ((id1-1) mod 5)+1; + col2 := (id2-1) div 5; + row2 := ((id2-1) mod 5)+1; + + // different elements and columns + if (col1 <> col2) and (row1 <> row2) then begin + id3:=(id1+id2) div 2; + while (id3=id1) or (id3=id2) do id3 := id3+1; + col3 := (id3-1) div 5; + row3 := ((id3-1) mod 5)+1; + type_:=1; + end + else if (col1 <> col2) and (row1 = row2) then begin + col3 := (col1+col2) div 2; + row3 := row1; + while (col3=col1) or (col3=col2) do begin + col3 := col3+1; + if col3>9 then col3 := 0; + end; + id3:=col3*5+row3; + type_:=2; + end + else if (col1 = col2) and (row1 <> row2) then begin + col3 := col1; + row3:= (row1+row2)-1; + if row3>5 then row3 :=row3-5; + while (row3=row1) or (row3=row2) do + begin + row3:=row3+1; + if row3>5 then row3 :=row3-5; + end; + id3:=col3*5+row3; + type_:=3; + end + else begin + id3 := id1; + col3:= col1; + row3:=row1; + type_:=0; + end; + + item3 := ComboBox1.Items[id3]; + text := item3; + s[r-1] := item3; + end; +end; + +procedure TForm1.ComboBox1Change(Sender: TObject); +var id: integer = 0; + item, col, row:integer; +begin // + with (sender as TComboBox) do begin + if itemindex<0 then exit; + if tag>3 + then + id:=tag-4 + else + id:=tag; + + i[tag div 4, id] := ItemIndex; + NewElement(d[id]); +end; + + + +end; + +procedure TForm1.FormCreate(Sender: TObject); +var _:integer; +begin + for _ := 0 to 3 do begin + i[0,_] := 0; + i[1,_] := 0; + p[_] := 0; + end; + s1:=''; + s2:=''; + + with sender as TForm1 do begin + c[0]:=Combobox1; + c[1]:=Combobox2; + c[2]:=Combobox3; + c[3]:=Combobox4; + c[4]:=Combobox5; + c[5]:=Combobox6; + c[6]:=Combobox7; + c[7]:=Combobox8; + + d[0]:=Edit1; + d[1]:=Edit2; + d[2]:=Edit3; + d[3]:=Edit4; + end; + +end; + +procedure TForm1.FormShow(Sender: TObject); +var + vFnt : THandle; + i:integer; +begin + vFnt := LoadFontFromRes('seagullregular'); + SendMessage(Handle, WM_FONTCHANGE, 0, 0); + Application.ProcessMessages; + Font.Name:='SEAGULL REGULAR'; + for i:=0 to 7 do c[i].font.name:=Font.Name; + for i:=0 to 3 do d[i].font.name:=Font.Name; + Image1.BringToFront; + +end; + +end. + diff --git a/readme.png b/readme.png new file mode 100644 index 0000000..9c0fa04 Binary files /dev/null and b/readme.png differ